注意:我知道git push -f
问题很常见,但我真的无法在任何地方轻松找到这个特定问题的答案。我想要一个全面的答案,而不仅仅是在某种程度上解决我的问题的东西。在问题的最后,我自己提出了一个解决方案。
我已经将一些更改推送到我不应该(在工作中)的分支。我已经git revert
修改了更改,但其中一位团队协调员实际上希望我git reset <old commit> && git push -f
这样做,这样历史记录就不会被还原提交弄乱。很少有人使用那个分支,所以我们认为值得冒险。
它起作用了,但我担心已经拉过我提交的人可能会不小心再次快进远程分支,因为历史还没有分歧(我只是重置为旧的提交,但没有做任何其他在那个之上提交)。
我注意到,如果我git reset <old HEAD commit> && git status
,Git 说它是在 之前的几个提交origin/<branch>
,所以我确定如果我git push
再次提交,Git 会快进它。
git pull
说回购是最新的并且不会回溯(无论如何我认为它不应该这样做)。但是,我应该怎么做才能确保每个人都回到正确的 HEADorigin/<branch>
并从那里开始工作?git reset origin/<branch>
在恢复该分支机构的工作之前,我是否需要要求所有人?我真的想要一些更容易且不易出错的东西(他们可能会忘记这样做)。
我知道我不应该 git 重置共享仓库上的分支,但你知道它是怎么回事...无论如何教育经验:P