我的一位同事不知何故将我的团队正在处理的发布分支的 HEAD 修订版推送到我们的主开发分支。 (这将是 145 个提交推送不当)
我想保持我们的提交历史记录干净,所以我正在考虑我是否应该做任何事情,或者只是创建一个新的开发分支来开始工作。
我不能简单地做一个
git revert <last-trusted-sha>..HEAD
因为分支上有多个合并(从我们执行拉取请求和 Git 创建合并remote_currentbranch到当前分支开始)。
有没有办法轻松解决这个问题? 还是我只是逐个提交,直到它被纠正?
谢谢
要恢复development
分支,可以使用以下命令:
git checkout development
git reset --hard HEAD~145
git push -f
或者,如果您知道development
分支上的最后一个提交 sha-1 值,然后再将release
分支上的提交推送到development
分支,则还可以使用 git reset --hard <last commit>
替换命令git reset --hard HEAD~145
。然后development
分支将被恢复。
这在技术上应该很容易解决:
- 找到要还原的上一个正确的提交。
-
git branch develop THEHASH -f
-
git push origin develop -f
通常,出于对同事的尊重,您不会做这样的事情。但在这种情况下,反正一切都已经坏了,所以你也不妨。
要向后 145 步找到正确的提交,git reflog
可能会有所帮助,除非您可以使用 git log
轻松发现它。