我提交了一个文件,但没有推送到存储库,一个文件到一个分支,即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 回答