git删除远程仓库的Merge记录

问题原因

首先说说远程仓库为什么会多出Merge branch ‘dev’ of …日志

由于远程仓库dev分支超前于本地dev分支(其他开发人员在你开发的期间向远程提交了代码),而在本地dev分支开发完成后执行 add,commit 操作后,进行 git pull origin dev 操作,会造成分支自动合并操作,因此在 git push 之后远程dev分支出现 “Merge branch ‘dev’ of …” 记录。

如果远程仓库dev分支超前于本地dev分支,但本地dev分支没有任何 commit,执行 git pull 操作,默认会采用 fast-forward 模式,不会产生合并节点,也就是说不会产生多余的那条“Merge branch ‘dev’ of …” 记录

解决方法

使用 git pull --rebase 命令,如果没有冲突,则会直接合并;如果存在冲突,手动解决冲突即可,不会再产生那条多余的信息。

如果你不想每次都rebase,可以在git bash里执行 git config --global pull.rebasetrue 在每次pull前先进行rebase操作。

删除git push到远程仓库的commit

如果远程仓库已经多出了这么一条脏记录“Merge branch ‘dev’ of …”,如何删除呢?

具体操作步骤如下:

git log  # 找到想要回退的commit_id  
git reset --hard commit_id  # 回退
git push origin dev:master --force   # 强制推送:从本地dev分支推送到远程master分支

   转载规则


《git删除远程仓库的Merge记录》 SunnyZhifei 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录