代码之家  ›  专栏  ›  技术社区  ›  Arkan

撤消GitHub上的Git Push

  •  19
  • Arkan  · 技术社区  · 14 年前

    我犯了个错误…我也不知道怎么修。

    我解释这个问题。

    我正在做我的项目,我做了第一个承诺。 在这个提交中添加了2个大的无用文件… 我不想要这些文件,所以我做了一个

    git rm file
    

    然后再次承诺。 我很蠢,因为我把车推到了吉特胡赫河。

    我想你已经发现了问题…

    如何从本地和Github存储库(尤其是Github…)中删除这些文件?

    我在网上找到了一些帮助,但我不想破坏我所有的存储库。

    谢谢

    2 回复  |  直到 11 年前
        1
  •  30
  •   Cascabel    14 年前

    如果没有其他人拉过,您只需将本地分支恢复到您想要的状态(可能通过重置到以前的位置,或者通过执行交互式重新平衡来删除不需要的提交),然后使用 -f (力)选项:

    git push -f <remote-name> <branch-name>
    

    如果有人拉了车,通常的建议是:阅读 recovering from upstream rebase Git-Rebase手册页的一部分,在执行强制更新之前查看您对其他人做了什么。

        2
  •  2
  •   Piotr Karbowski    14 年前

    如果您希望删除(而不是还原、删除)最后一次提交新文件,我认为您应该这样做:

    git reset --soft "HEAD^"
    

    不管怎样,由于您已经将其推到了GitHub,所以在不重新创建Git回购的情况下无法删除它。这就是它的工作方式,您可以恢复每个提交,例如在删除了这两个大文件的地方提交。因为这是一个新的回购,而您正在谈论初始提交,所以重新创建回购会将我视为最佳想法。