1

基本上我不小心将“文件”文件夹添加到我的提交中,所以我有四个旧的开发分支,其中列出了“文件”文件夹以及所有文件。我不想对这些分支进行任何其他更改,我只想删除 files 文件夹,并将其他所有内容保持原样。我试过谷歌搜索它没有运气?我假设我缺少一些简单的东西,所以任何帮助将不胜感激。

4

1 回答 1

4

你只是想从下一次提交中删除它,还是从项目历史中完全删除它?

git rm BAD_DIRECTORY && git commit -a会做前者。如果您已公开共享此存储库,则应使用此方法,因为重写历史记录会使其他人的存储库与您的存储库不同步。

要执行后者,请使用git filter-branch. 它通过在历史记录中的每个状态(提交)对项目应用一系列过滤器(命令)来重写历史记录。对于您的用例,您可以使用以下内容:

git filter-branch --index-filter "git rm --cached --ignore-unmatch BAD_DIRECTORY"

通过使用--index-filter,您可以避免在每次提交时进行检查,从而节省一些时间。查看手册页以获取更多信息。如果 BAD_DIRECTORY 在特定提交中不存在,则添加--ignore-unmatch以防止其失败。git rm

于 2013-05-10T23:10:46.297 回答