分支简介
- 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