我提交了一个文件,但没有推送到存储库,一个文件到一个分支,即abc. 现在我想从这个分支中删除它abc。我怎样才能做到这一点?
1486 次
1 回答
7
我假设您想从历史记录中删除该文件,就好像它从未存在过一样。如果您只想在以后的提交中删除该文件,请使用git rm my-bad-file.txt并忽略我的其余答案。
如果该文件仅在您最近的提交中,那么最简单的方法git rm my-bad-file.txt是删除该文件,然后git commit --amend编辑之前的提交。
如果有多个提交包含有问题的文件,那么git filter-branch可能会有用。
git filter-branch --index-filter 'git rm --cached --ignore-unmatch my-bad-file.txt' master..abc
这表示:
git filter-branch: 让我们重写一些提交!--index-filter:更改每个提交的索引而不实际在磁盘上检查它。'git rm --cached --ignore-unmatch my-bad-file.txt':对于每个提交,如果存在名为“my-bad-file.txt”的文件,则取消暂存该文件。master..abc:对分支 abc 上的所有提交执行此操作,返回到它从主分支分叉的位置。
于 2012-07-15T08:25:01.447 回答