从最新提交中删除一些文件

时间:2014-02-03 00:01:33

标签: git

遗憾的是,我最近提交的一些文件对于github而言太大了,所以我想从最新的提交中删除这些文件,从而可以推送其他文件。我已经尝试过使用git reset --HEAD,但它似乎只有在你还没有提交文件的情况下才能工作。还有其他想法吗?

1 个答案:

答案 0 :(得分:3)

这应该适合你:

  1. git rm违规文件
  2. git status应将文件显示为已删除
  3. git commit --amend修改最后一次提交,不再包含文件
  4. git push
  5. 请参阅此成绩单:

    [root@/tmp/test master]touch b c
    [root@/tmp/test master]git add b c
    [root@/tmp/test master]git commit -m "Add b and c"
    [master 1cd809f] Add b and c
     0 files changed
     create mode 100644 b
     create mode 100644 c
    [root@/tmp/test master]git rm c
    rm 'c'
    [root@/tmp/test master]git status
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #       deleted:    c
    #
    [root@/tmp/test master]git commit --amend -m "Add only b"
    [master 9c5809e] Add only b
     0 files changed
     create mode 100644 b
    [root@/tmp/test master]git diff HEAD^..HEAD
    diff --git a/b b/b
    new file mode 100644
    index 0000000..e69de29
    

    注意:这仅适用于在上次提交中添加了违规文件的情况。在其他情况下,请参阅Remove sensitive data in the GitHub help,它解释了从完整历史记录中删除文件。

    如果它不想要你可以尝试交互式变基(git rebase -i <commitish>)和上面的方法。