Git的日常rebase流程

Upstream repo总会日常有一些PR被merge:

在本地的other branch工作的时候,最好不要使用pull命令来同步自己的本地repo数据。因为pull命令是fetch+merge。我们只需要下载数据,而合并的过程希望能够由自己控制,所以最好独立使用fetch命令:

假设我们想把upstream repo的master branch合并到我们目前的工作branch里,那么不要使用merge命令,而是要使用rebase命令:

如果有conflict:

就调出mergetool来解决:

手工修复conflicts以后,可以使用git rebase --continue命令继续合并:

rebase以后查看commit log:

可以看到,our local work is on top of upstream commit,这样我们后续再提交branch进行PR的时候,commit history就是按upstream repo的history走的。