分支简介
- Git默认创建master分支,其实它是一个指向提交对象的可变指针。
- 当前分支会在每次的提交操作中自动向前移动。
- Git有一个特殊指针HEAD指向当前分支,相当于当前分支的别名。
- 创建新分支即创建了一个指向最后提交对象的可移动的新指针。
分支管理
- 创建分支,此时HEAD仍指向master
git branch newbr - 切换分支,此时HEAD指向newbr
git checkout newbr
切换分支会改变工作目录中的文件,如果在不同分支提交,则项目提交会产生分叉,需要在合适的时机将其合并。 - 创建并切换分支
git checkout -b newbrc - 删除分支
git branch -d newbrc
强制不保存删除需使用-D选项 - 合并分支,如将newbr分支合并到master分支
git checkout master
git merge newbr - 出现合并冲突
使用git status查看分支合并冲突的原因,手动修改后使用git add命令添加到暂存区表示冲突已解决。 - 查看分支列表
git branch
带*标记的为当前分支;使用-v选项显示每个分支最后一次提交;
使用--merged查看已合并到当前分支的分支,使用--no-merged查看未合并到当前分支的分支。
分支开发工作流
- 可以将分支想象成流水线,经过测验成功的提交会被添加到稳定的流水线上。
详细信息见pro-Git2中P86-98 - 通常显式使用
git fetch和git merge操作代替git pull - 删除远程分支
git push origin --delete newbr