Git 相关
Git 的文件的生命周期
Git 的工作区
merge 和 rebase 的区别?
merge
git merge
的使用方法很简单,假如你想将分支 feature
合并到分支 master
,那么只需执行如下两步即可:
- 将分支切换到
master
上去:git checkout master
- 将分支
feature
合并到当前分支(即master
分支)上:git merge feature
如上图所示,git merge
有如下特点:
- 只处理一次冲突
- 引入了一次合并的历史记录,合并后的所有
commit
会按照提交时间从旧到新排列 - 所有的过程信息更多,可能会提高之后查找问题的难度
为什么讲 git merge
提交的信息过多可能会影响查找问题的难度呢?因为在一个大型项目中,单纯依靠 git merge
方法进行合并,会保存所有的提交过程的信息:引出分支,合并分支,在分支上再引出新的分支等等,类似这样的操作一多,提交历史信息就会显得杂乱,这时如果有问题需要查找就会比较困难了。
rebase
与 git merge
一致,git rebase
的目的也是将一个分支的更改并入到另外一个分支中去。
如上图所示,他的主要特点如下:
- 改变当前分支从
master
上拉出分支的位置 - 没有多余的合并历史的记录,且合并后的
commit
顺序不一定按照commit
的提交时间排列 - 可能会多次解决同一个地方的冲突(有
squash
来解决) - 更清爽一些,
master
分支上每个commit
点都是相对独立完整的功能单元
总结
当需要保留详细的合并信息的时候建议使用git merge
,特别是需要将分支合并进入master
分支时;当发现自己修改某个功能时,频繁进行了git commit
提交时,发现其实过多的提交信息没有必要时,可以尝试git rebase
。