我还在努力学习(基础?)更好的Git要点,并设法使自己陷入麻烦。我意识到我犯了一些错误,检查了一个较旧的提交,并从那里开始编码。当我尝试推送时,我被告知我当前的提交是落后的,我需要与HEAD合并。Git推荐使用"git pull“。然而,HEAD有我想忽略的代码。我该如何解决这个问题?非常感谢你的帮助。
流程图:
-------- HEAD (bad) ---------------------- + (behind conflict, requires
\ / merge with HEAD, which is
\------- Current commit (good) ----/ bad and needs to be ignored)
发布于 2012-12-20 00:01:19
如果您的存储库没有被其他人使用,您可以安全地使用git push -f
来覆盖远程分支。
发布于 2014-11-30 13:30:18
以下是您可以执行的操作:
git checkout <branch-to-modify-head>
git reset --hard <commit-hash-id-to-put-as-head>
git push -f
如果你不强制推送,git将抛出这个错误:更新被拒绝,因为你当前分支的尖端是落后的。
请注意,这将篡改您的git历史记录,因此另一种方法是还原您不想要的每个提交。这样你就可以保留你的历史记录:
git revert commit-id
干杯
发布于 2016-01-20 20:55:26
我这样做的方式是:
git reset --hard <commit-SHA>
git push origin HEAD:<name-of-remote-branch>
这是git推荐的方式,而且对于开发团队中的其他每个人来说,执行git push -f
可能有点问题
https://stackoverflow.com/questions/13956207
复制相似问题