完全覆盖以前的git提交

pqn*_*pqn 5 git

我的同事向我们的git存储库推送了一个错误.我希望提交一些更新的代码,但我没有git pull,因此我在HEAD后面提交1次.如果我落后,我怎么能完全忽略他的变化并克服他的错误呢?

Rya*_*art 8

你可以像其他答案所暗示的那样强制推动,但更安全的方法是继续推进他的更改,然后是git revert他的提交,这将彻底撤消他所有的更改.这不会冒无意中丢失更改的风险:

git pull
git revert <treeish naming his commit>
git push
Run Code Online (Sandbox Code Playgroud)


Sim*_*mon 6

我猜你的意思是他一个糟糕的承诺到了一个中央回购.

如果是这样,那么您可以使用推送版本git push -f,这将覆盖存储库.当然,这也将打破历史(f意味着力量),因此您的同事将不得不重新克隆中央回购.

  • 您的同事不必重新克隆.告诉他,'git fetch; git rebase origin/master',或简称'git pull --rebase'.之后他需要修复他的提交,或者完全删除它. (6认同)