1

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

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

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

4

3 回答 3

3

您很可能想要使用git filter-branch. Github 有一个相当不错的教程如何在这里使用它。

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

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

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

于 2012-04-17T21:54:38.463 回答
1

您可以通过执行交互式变基来编辑 Git 中的历史记录。在引入文件夹和git rebase -i <that commit id>.

于 2012-04-17T21:52:16.837 回答
1

您可以使用 git filter branchgit filter-branch --index-filter 'git rm --cached --ignore-unmatch YOURFOLDER' --prune-empty -- --all此命令将运行所有提交,删除您可以正常推送的 YOURFOLDER,因为您尚未推送它。我经常使用这个命令。

于 2012-04-17T21:59:45.610 回答