如何删除推送到远程存储库的提交?
当地分行: -
'特征/ 100'
和远程分支机构: -
'主'
“版本2”
意外,
但在真正的“ 功能/ 100”应该已经被合并到远程分支“ 版本2”
我如何修复它(部分) : -
我已将功能分支的“ 功能/ 100 ”合并到远程分支“ Version2 ”并将其推送到服务器。
git checkout Version2
git merge --squash feature/100
git add .
git commit -m 'New message'
但我想删除我已合并并提交给主分支的最后一个推送。 怎么样?
注意我只有一个在这个项目上工作..所以,即使推送提交被删除,它不会伤害任何人
你可以:
恢复您的更改
git revert HEAD
这将创建一个新的提交,恢复您刚刚推送给主控的更改。 这是最安全的选择,因为其他人可能已经拉下了您推动的变更。
更改您的提交历史并强制推送更改
您可以删除刚刚推送的提交:
git reset --hard HEAD~1
git push origin master --force
除非您确定没有人从主服务器取消您的更改,否则您不希望这样做。
有关更多信息,请参阅从Git中的分支中删除提交
您可以恢复主服务器上的合并提交。 当你以后真的想合并分支时,你必须首先恢复回复。 有关详细说明,请参阅此处:
http://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt
可能已经太晚了,但是如果您想通过一次提交来重新推送推送的分支( master
?),请发出以下命令:
git push origin +master^:master
+
使得强制推送, master^
描述前一个提交。 :master
推送到远程主分支。
上一篇: How to delete commit that is pushed to the remote repository?
下一篇: Code Contracts trying to get build errors instead of warnings