问题原因
首先说说远程仓库为什么会多出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.rebase
true 在每次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分支