git pull
相当于自动的 fetch 和 merge 操作,会试图自动将远程库合并入本地库,在有冲突时再要求手动合并。
git rebase
可以确保生产分支commit是一个线性结构,方便rollback。其实生产也可以选择打tag来发布。
注:通过rebase可以确保主分支commit history线性结构上每个commit点都是相对独立完整的功能单元。除了美感,这样做也有助于团队间的分工协作,比随便merge效果好。
git pull --rebase(推荐用这个)
- 把本地 repo. 从上次 pull 之后的变更暂存
- 恢复到上次 pull 时的状态
- 合并远端的变更到本地
- 最后再合并刚刚暂存下來的本地变更
git fetch
只是将远程的文件拉下来,不会与本地的分支进行合并