【问题标题】:Overwrite last X remote Git commits [duplicate]覆盖最后 X 个远程 Git 提交 [重复]
【发布时间】:2014-10-03 18:27:02
【问题描述】:

一位同事最近向我们的远程存储库推送了 4 个不受欢迎的提交。 我现在想用我的代码覆盖最后 4 次提交,并且不想弄乱所有的合并冲突。

需要明确的是,要覆盖的 4 次提交是分支上的最后 4 次提交。没有任何东西依赖它们。

我应该强制推送吗?最好的方法是什么?

【问题讨论】:

  • 这个 Git 存储库是否存储在 GitHub 上?您可以使用 GitHub 的还原提交功能。
  • @Jailout2000 它在 GitHub 上。不过,我相信还原功能仅适用于拉取请求。如果我错了,请纠正我。
  • This answer on another question 可能更适合回答这个问题。

标签: git


【解决方案1】:

您的同事可以使用git revert 功能创建一个新提交,该提交与错误提交中引入的更改相反。他或她可以将这个新提交推送到 repo,其他人可以拉入更改。

然后,您可以根据来自 git revert 的新提交重新确定您的提交。

【讨论】:

  • 假设,假设同事正在休假。还有其他方法吗?
  • @NightlyNexus 可能会创建一个新的克隆,在分支上执行还原并推送它,当然如果存储库足够小可以克隆。
  • @NightlyNexus 这仍然有效。 git revert 撤消提交,无论您是否是原始提交者。
  • @NicolasMcCurdy Git 会告诉我我必须先合并。这就是我要避免的。
  • @NicolasMcCurdy 但是 Nightly 的分支已经有了新的提交,因此他不必先合并或变基来恢复它吗?
猜你喜欢
  • 2012-01-03
  • 1970-01-01
  • 2012-05-09
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多