我不小心推送了一个修改了 git 子树的提交。现在要做什么?

I have accidently push a commit which modified a git subtree. What to do now?

我已经推送了一个修改了 git 子树的提交(不是通过从最初拉取子树的存储库中拉取)。将子树恢复到原来的样子的干净方法是什么?

按照以下方法完成

  1. 手动添加新提交以还原对文件所做的更改。这是最安全的选择
  2. 还原提交 git revert ddlpopp(将 ddlpopp 替换为您的提交 ID)。这将简单地添加一个新的提交来恢复指定提交中的更改。这可以用于任何提交,而不仅仅是最后一次提交。可能会引入一些意想不到的变化,推送前一定要仔细检查
  3. 头部的显式重写。这应该极少使用。这将简单地重置遥控器的头部

    git reset --hard HEAD~1

    git push -f

这是一篇很棒的文章 http://christoph.ruegg.name/blog/git-howto-revert-a-commit-already-pushed-to-a-remote-reposit.html