Li Jiaheng's blog
596 字
3 分钟
Git(2)·Git分支
2023-05-25

有时候开发到一定程度,你不知道接下来的做法是否正确,如果着手这个做法,势必带来很多难以清理的改动,因此希望一个单独的“备份”来用于这个尝试。这就是需要用到分支的情况之一。

分支是版本管理程序的核心功能之一。Git的分支模型非常简单:在你创建分支的时候,给这个分支一个不会影响到主干(master)的“新环境”(并非真正意义上的环境),然后把当前主干上的内容与状态(HEAD指向的那个最后一次提交后的目录索引)复制 到这个分支新环境上。此后在分支中的任何修改、提交,都不会影响到主干。

创建、查看、切换、删除分支#

创建分支:git branch (branchname)
查看分支:git branch,带 * 的是当前所在的分支.
切换分支:git checkout (branchname)
切换分支后,git会按照切换到达的分支最后一次提交的快照(最新索引)重置你的工作区文件,所以你的工作区中的文件永远符合你所在的分支。

创建分支并直接切换到这个新分支:git checkout -b (branchname)
删除分支:git branch -d (branchname)

合并分支与冲突#

分支最后终归要合并到主干中的,合并命令:git merge (branchname)(多个分支名一次合并多个) ,把(branchname)合并到当前分支中,一般是master。注意提前转换分支。
执行此命令后会尝试自动合并,比如增删文件等。但当发现两个文件内容有不同等无法自动判断要使用哪一个的时候,会触发合并冲突,需要人为修改。

Git会列出产生冲突的待修改文件,并把这些文件的状态设置为UU。打开这些文件,Git自动在产生冲突的位置标出了冲突内容,比如在主干中这里的内容是这个,在分支中这里的内容是那个。进行修改。
修改完毕后,git add 提交刚刚修改的文件,然后发现这些文件的状态变成了 M。这时候git commit,显示合并完毕。

合并完之后可以删除分支,git branch -d (branchname)

Git(2)·Git分支
https://namisntimpot.github.io/posts/tools/git/git分支/
作者
Li Jiaheng
发布于
2023-05-25
许可协议
CC BY-NC-SA 4.0