【问题标题】:How to undo the initial commit on a remote repository in git?如何撤消 git 中远程存储库上的初始提交?
【发布时间】:2013-09-23 08:28:54
【问题描述】:

如果我的第一次提交是错误的,但被推送到(当前私有的)远程,我如何撤消远程上的那个提交?

我猜我可以修改然后推送--force?

【问题讨论】:

  • 真正需要清除提交的情况很少见。只需添加其他提交来修复您的存储库并将其带到您想要的状态。 (当然,除非您已经完成了诸如提交和推送密码之类的操作)。
  • 我同意@dkinzer 答案中的操作有效,但它是您应该明确回答为什么要使用而不是仅添加新提交的操作之一。与任何破坏性操作一样。

标签: git git-push git-amend


【解决方案1】:

如果你只有一个提交(初始提交),你可以这样做

git commit --amend
git push --force origin

【讨论】:

  • 如果您实际上是在提交中添加或修改文件(而不是仅仅修复消息),则需要预先提供 git add
  • 致命:你没有什么可修改的。
【解决方案2】:

通过删除您的 HEAD,您可以将您的存储库恢复到新状态,您可以在其中创建新的初始提交:

git update-ref -d HEAD

创建新提交后,您需要将其强制到远程以覆盖先前的初始提交:

git push --force origin

【讨论】:

  • 获取remote: error: denying non-fast-forward refs/heads/master (you should pull first)
  • 错误:src refspec refs/heads/master 不匹配任何。错误:未能推送一些 refs
猜你喜欢
  • 2018-03-14
  • 2012-05-09
  • 2019-07-24
  • 2020-06-12
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
相关资源
最近更新 更多