【问题标题】:Git reset --hard reverted by collegueGit reset --hard 被同事还原
【发布时间】:2017-03-13 09:27:33
【问题描述】:

我通过执行以下操作重置了一个 git 分支:

 git reset --hard someid

然后我选择了一些提交,然后像这样将它推送到远程:

git push --force origin develop

这一切都很好,但现在一位同事做了 git pull、提交、推送,现在我用重置删除的东西又回来了。

重置后我或我们应该做些什么不同的事情?

【问题讨论】:

  • 你应该和你的团队沟通过。重写历史总是有可能带回你想要删除的历史,因为其他人已经在本地拥有它。如果他们没有被告知通过重新克隆或删除相同的变更集来处理这个问题,他们可能会在下次推送时推回这些变更集,而没有任何不当行为的迹象。强制推送需要小心处理,而不是个别开发人员应该孤立地做的事情。
  • 对..所以我们进行了交流,但我们不知道它是这样工作的。我想这是某种答案。删除本地版本的分支并再次检查它是最好的方法吗?
  • 一开始最好不要乱用公共历史。仅当您不想再更改提交时才发布提交。如果您必须更改某些内容,请创建一个新提交,如果您必须还原某些内容,请使用 git revert <old_commit_id> 创建一个还原旧提交的新提交。
  • 一般来说是的,我知道这一点,但我们无意中在该分支上进行了很多提交,所以我们采取了这条路线。

标签: git


【解决方案1】:

您的同事本可以使用git pull --rebase,并且在每个步骤中都使用git rebase --continue而不是提交

【讨论】:

  • 请注意,变基 可以 重新引入故意丢弃的提交。从 Git 2.0 及更高版本开始,可以被告知丢弃它们,使用 --fork-point。它默认在git pull --rebase 和其他简单的变基案例中丢弃它们,而不是在更复杂的手动变基案例中丢弃它们。详情请见stackoverflow.com/q/42536989/1256452
猜你喜欢
  • 1970-01-01
  • 2018-01-13
  • 2018-09-21
  • 2018-05-30
  • 1970-01-01
  • 2018-06-14
  • 2015-09-15
  • 2011-08-12
  • 1970-01-01
相关资源
最近更新 更多