删除过去在许多提交中添加的文件

时间:2012-04-17 21:49:17

标签: git github

在过去30-40次提交中,我包含了一个文件夹,我才意识到我不应该这样做。

我主要担心的是,当我将这些更改推送到Github时,由于这些文件的大小,需要一段时间......

有没有办法从过去的提交中完全删除该文件夹(或某些文件)?

3 个答案:

答案 0 :(得分:3)

您最有可能想要使用git filter-branch。 Github有一个相当不错的教程如何使用它here

以下行应该可以解决问题:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r <path>' --prune-empty -- --all

如果要删除文件夹,请确保使用-r <path>

答案 1 :(得分:1)

您可以通过执行交互式rebase在Git中编辑历史记录。在介绍文件夹git rebase -i <that commit id>之前找出第一个提交。

答案 2 :(得分:1)

你可以使用git filter branch git filter-branch --index-filter 'git rm --cached --ignore-unmatch YOURFOLDER' --prune-empty -- --all这个命令将运行所有提交删除你可以正常推送的你自己的提交,因为你还没推动它。我非常使用这个命令。