系列教程
Git 常见的分支模型
![git-branch-type]()
Git 分支管理图解
![git-branch-manage-diagram]()
Git 分支的创建、删除、切换
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $ git branch -v
$ git branch hot_fix
$ git branch -d hot_fix
$ git checkout hot_fix
$ git checkout -b hot_fix
|
Git 分支的合并
1 2 3 4 5 6 7
|
$ git checkout master
$ git merge hot_fix
|
Git 分支的变基
1 2 3 4 5 6 7
|
$ git checkout feature
$ git rebase master
|
1 2 3
| A---B---C (main) \ D---E---F (feature)
|
1 2 3
| A---B---C (main) \ D'--E'--F' (feature)
|
| 特点 | 说明 |
|---|
| 提交历史更整洁 | 线性、易读,没有分叉结构 |
| 原始提交会被 “复制” | 实际是创建新的提交,不是简单移动 |
| 会改变提交哈希 | 所以不要对公共分支执行 git rebase(否则会引发冲突和混乱) |
| 可以减少 merge commit | 与 git merge 不同,git rebase 不会产生额外的合并节点 |
特别注意
在团队开发中,不要在公共分支使用 git rebase,否则可能会引起他人拉取代码时的冲突和困惑。
Git 解决合并分支后产生的冲突
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
$ git checkout hot_fix
$ git merge master <<<<<<< HEAD edit by hot_fix s ======= edit by hot_fix2 >>>>>>> master
$ vim api.json
$ git add api.json
$ git commit -m 'update message'
|
克隆指定分支的代码
1 2
| $ git clone -b develop https://github.com/xxx.git
|