在过去的 30-40 次提交中,我包含了一个文件夹,我才意识到我不应该这样做。
我主要担心的是,当我将这些更改推送到 Github 时,由于这些文件的大小,这将需要一段时间......
有没有办法从过去的提交中完全删除该文件夹(或某些文件)?
您很可能想要使用git filter-branch
. Github 有一个相当不错的教程如何在这里使用它。
以下行应该可以解决问题:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r <path>' --prune-empty -- --all
-r <path>
如果要删除文件夹,请确保您正在使用。
您可以通过执行交互式变基来编辑 Git 中的历史记录。在引入文件夹和git rebase -i <that commit id>
.
您可以使用 git filter branchgit filter-branch --index-filter 'git rm --cached --ignore-unmatch YOURFOLDER' --prune-empty -- --all
此命令将运行所有提交,删除您可以正常推送的 YOURFOLDER,因为您尚未推送它。我经常使用这个命令。