Git 分支

Git 相对于其他的版本控制软件的“大杀器”是分支,因为 Git 进行分支速度很 快且很方便。使用 Git 做版本控制是非常鼓励多使用分支的。与分支相关的三 个重要的命令分别是:branch,checkout 和 merge。branch 用来创建分支, checkout 用来切换不同的分支,merge 用于合并分支。

基本的分支操作有:

  1. 创建分支:git branch 来创建新分支。
  2. 切换分支:git checkout 来切换到新的分支。
  3. 在新分支提交修改:git addgit commit 来提交记录对代码的改变。
  4. 切换到原分支:git merge 来合并分支。这种情况只会简单地去移动分支 指针,如果有第三个分支需要合并,则需要去对比分支的不同(可能会用到 git diff)。

创建分支

使用 git branch <branchname> 就可以创建一个新的分支,例如创建一个叫 做 dev 的分支:

git branch dev

创建一个分支,可以简单理解为创建了一个指针,该指针指向了一个 commit, 而 commit 中有其 parent commit 的 SHA-1 值,从而形成了一个分支链条。创 建一个分支并不会切换到新分支,而是依然保留在原来的分支。新创建一个分支, 没有做任何修改的时候,相当于新的分支和当前分支同时指向同一个 commit。

切换分支

如果要切换到新的分支来进行下一步开发,则需要使用 git checkout 命令,如:

git checkout dev
# Switched to branch 'dev'

也可以使用 git checkout -b <branch> 来直接创建并切换分支。

合并分支

当我们在新的分支上对于代码做了修改,并进行了新的 commit,这样新的分支 就和原来的 master 分支有所不同了。在调试完毕,确认要把新的代码加入到 master 分支中,可以使用 git merge 命令来合并分支。

要合并代码,首先切换到被合并的分支上,如我们要把分支合并到 master,则 要先切换到master分支:

git checkout master
# M       md/git_command_commit.md
# Switched to branch 'master'

然后执行 merge 命令:

git merge dev

如果只有两个分支,并且在切换到一个分支后并未对原分支进行新的 commit , 那么 merge 将会非常容易,因为是线性的。而如果切换分支后,原分支又又了 新的分支或者新的 commit,那么就会在 merge 的时候遇到冲突。这时候应该先 解决冲突才能进一步合并分支。

By @Wolfson Liu in
Tags : #git,