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。