实际项目中合并commit疑惑

工作中经常有这样的情况,完成了某一功能开发准备提交到远程仓库,发现其他同事也对其做了修改,这时得先pull最新代码,导致git log如下所示:

e76dfc4216d797af0f093a8121b9a586d4d33ce6 Merge branch 'master' of https://github.com/zhugw/helloworld
20171e3a0ed95a6b6a920cda8d7837fff2b393db Create file2
accf96f77485502f918b56007eb39af687674755 add file1 from local

想删除掉Merge branch所在的commit,或想让它与上面的第二或第三的提交合并。

看了一下git的文档(重写历史),可以通过git rebase -i 来合并提交、删除提交、重排提交。照文档中的例子演示了一遍。

但一旦用到与远程仓库交互的实际项目中就不灵了。

如 执行git rebase -i HEAD~2 照理应该显示

pick 20171e Create file2
pick e76dfc Merge branch 'master' of https://github.com/zhugw/helloworld

但实际显示的是:

pick accf96 add file1 from local
pick 20171e Create file2

不知何故?不知还有没有其他办法来解决上述问题?

你可能感兴趣的:(git)