Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 仓库(Repository)是一个包含项目所有历史版本、元数据和配置信息的目录。它本质上是一个隐藏的.git
文件夹(位于项目根目录下),其中存储了:
在 Git 中,节点通常指的是版本控制系统中的提交对象(Commit),它是 Git 数据结构中的基本单元。每个提交节点代表项目历史中的一个版本快照,通过有向图的方式形成 Git 的提交历史。
分支(Branch) 是版本控制的核心机制之一,它允许你在不干扰主开发线的情况下,并行开发多个特性或修复 bug。
SourceTree 是一款由 Atlassian 公司开发的免费 Git 图形化界面客户端,旨在帮助开发者更直观、高效地管理 Git 版本控制系统。它通过可视化界面简化了 Git 命令行操作,让复杂的版本控制流程(如分支管理、提交、合并、冲突解决等)变得更易操作,尤其适合 Git 新手或偏好图形化操作的用户。
点击Create,选中文件夹创建仓库
点开上方资源管理器可以打开仓库
从远程仓库下载所有本地仓库中不存在的提交(commits)和引用(refs),但不会自动合并到当前工作分支。如果需要合并,需要手动marge
git fetch
当前还处于上次的分支没有合并
如果需要合并需要自己手动marge
创建一个本地仓库
点击远端,添加一个远程仓库
当在提交的时候要先拉取一下最新的代码,防止冲突
先在hello.txt里面添加hello weather,然后将其修改的文件暂存到暂存区git add
添加要提交的信息,勾上立即推送到变更到origin/master,相当于执行了git commit && git push
git reset
的三种模式
--soft
模式--mixed
模式(默认)git add
)--hard
模式软合并为soft 混合合并为mixed 强行合并为hard
当前本地和云端的版本不一致,要强行把本地的推送到云端
推送完会本地和云端会呈现一致
右键要回滚的版本,选择回滚提交
点击推送就能把云端的也回滚提交
点击上方的分支就能创建一个分支
选择需要切换的分支,直接双击就能切换
本地仓库也出现了dev-c.txt
右键要删除的分支,点击删除
冲突大概就是,两个人修改了相同的一个文件,git不知道那个在前,那个在后,也不知道是否要删除某一处,所有就会发生冲突
master
分支有本地仓库没有的更新。这一般是由于其他人向相同分支推送了新内容所导致的。git帮我们标记出了,head是代表本地修改的,=====下面是远端修改的内容
在sourcetree上面点击设置
>高级
>编辑
//直接写出其名字
config.ini
secrets.json
//使用通配符
//忽略以.txt文件结尾的
*.txt
// 忽略所有 .log 文件
*.log
//在文件夹后面加/
# 忽略 logs 目录及其所有内容
logs/
# 忽略 target 目录
target/
通过修改.gitignore忽视某个文件但是发现这个文件还是会被踪,只对没有被git commit 过的文件有效,也就是说如果你的文件被commit过后你再修改gitignore,这个时候gitignore对这个文件是无效的,这个时候就需要取消对某个文件的跟踪。
添加一个log文件
创建补丁的原因
交给客户的版本是2.0版本的,随着公司的发展,项目已经到了3.0。
这时候客户提出了一个bug,我们需要对其进行修复。
因为客户所支付的款项只是到2.0版本的,我们不可能免费给客户升级到3.0版本。
这个时候就可以使用打补丁的方式来提交代码。
项目开发的时候要求一个页面一个代码分支,同时要求代码写完之后要求指定的人来review,
还要求不能向Git分支提交太多次代码,否则分支就会很乱。
这个时候,就可以让开发者将开发完的代码先提交到本地Git仓库,然后将所有的改动都打一个补丁,将补丁发给代码review者。代码review者,将补丁应用到本地的review分支进行代码review。
操作
>应用补丁
并选择补丁的位置当你现在需要帮同部门的人去改bug,但是自己的还没写完,也可能不想去动自己的本地代码,可以使用贮藏功能
ps 贮藏只会去储藏修改的和被git管理的文件
如上图所示,当需要去除之前写的代码,需要点击丢弃,这里丢弃写的C文件
丢弃完发现暂存区只剩下C文件
在我们开发迭代过程中,会遇到这种情况,当前的版本是1.0.0。但需要找到版本号0.5.0的版本提交时,可能因为时间久远,不能快速定位到当时V0.5.0的提交记录,这个时候我们就需要进行标签管理了。比如我在发布1.0.0时,只需要在这个版本最后一个提交记录上打上标签,
在左侧标签页可以选择删除标签