场景:最后两次提交都很糟糕,必须删除(本地和远程)。工作树必须回到HEAD~2覆盖电流变化(让我们假设它已经存在,或者b / c它们已被存储)。另外,让我们假设我是唯一一个在分支机构工作的人,删除远程提交也没关系。
有什么区别:
git reset --hard HEAD~2
git push origin +HEAD
VS
git checkout HEAD~2
git push origin +HEAD
问题2:强制推出分支分支的推荐语法(截至2017年4月)是什么?
git push origin +HEAD
vs
git push origin MyBranchName --force
答案 0 :(得分:1)
git checkout HEAD~2
用于在过去的某个提交中查看它是如何(通过填充工作目录)但不修改历史记录。你现在是一个独立的头状态(阅读它,因为知道如何处理它是有用的)。
git reset --hard HEAD~2
就是你描述的和你想要的。
git push origin --force-with-lease
是要走的路。
这与“强迫”相同。但是添加了一个验证表明你不会破坏你没有看到的其他人推送的历史记录(你不能覆盖你赢得的历史记录)。这绝对是要走的路,当你做的时候应该是默认的 - 强迫'但情况并非如此,当然是为了兼容......