【问题标题】:Undo (not revert) historic local commit?撤消(不恢复)历史本地提交?
【发布时间】:2021-06-25 12:41:43
【问题描述】:

当之后进行了 17 次提交时,我如何撤消本不应该进行的提交?

背景:我团队的一位同事单独工作了一个月,现在是时候将他们的分支合并到 master 了。但是,其中一个提交包含一个太大而无法上传到 GitHub 的文件。他们尝试恢复提交,但 GitHub 仍想上传文件以便再次删除它,所以我们不能只恢复最初的错误提交。

那么我们如何才能撤消该提交,就好像它从未发生过一样?我们有 GitBash 和 Github Desktop。

【问题讨论】:

  • 听起来令人沮丧。您的同事是否尝试过变基? (您可能需要同时删除原始提交和撤消提交)

标签: git github commit undo


【解决方案1】:

您可以执行交互式变基来删除一个错误的提交。

注意:你会改变历史,如果其他人已经拉了分支,你可能会带来惊喜。

git checkout colleagues-feature-branch
git rebase -i develop

然后在打开的文本文件中,用drop(而不是pick)标记所需的提交。保存并退出。

【讨论】:

  • 其他人无法查看该作品,因为我们无法从他们的本地存储库中获取任何内容(所有推送都被阻止,因为我们无法上传该单个文件)。积极的一面是分支上不会有任何冲突,因为没有其他人接触过它。但是谢谢,这给了我一个探索的途径。
  • 如此完美。交互式变基应该是您的方式。有时我会在 rebase 之前创建一个备份分支,以确保不会丢失任何内容。
猜你喜欢
  • 2011-08-20
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 2017-04-13
  • 2012-05-20
  • 2017-06-16
  • 2011-07-02
  • 2018-05-01
相关资源
最近更新 更多