如何从git分支中删除文件

如何从git分支中删除文件,git,github,repository,Git,Github,Repository,我将一个文件提交到分支机构,即abc,但没有推送到存储库。现在我想从这个分支中删除它abc。我怎样才能做到这一点呢?我假设您想从历史中删除该文件,就好像它从未存在过一样。如果您只是想在以后的提交中删除该文件,那么请使用git rm my bad file.txt忽略我的其余答案 如果文件仅在最近的提交中,则最简单的方法是使用git rm my bad file.txt删除该文件,然后使用git commit--amend编辑以前的提交 如果有多个提交包含有问题的文件,那么可能会很有用 git

我将一个文件提交到分支机构,即
abc
,但没有推送到存储库。现在我想从这个分支中删除它
abc
。我怎样才能做到这一点呢?

我假设您想从历史中删除该文件,就好像它从未存在过一样。如果您只是想在以后的提交中删除该文件,那么请使用
git rm my bad file.txt
忽略我的其余答案


如果文件仅在最近的提交中,则最简单的方法是使用
git rm my bad file.txt
删除该文件,然后使用
git commit--amend
编辑以前的提交

如果有多个提交包含有问题的文件,那么可能会很有用

git filter-branch --index-filter 'git rm --cached --ignore-unmatch my-bad-file.txt' master..abc
这意味着:

  • git过滤器分支
    :让我们重写一些提交

  • --index filter
    :更改每个提交的索引,而不实际在磁盘上签出它

  • 'git rm--cached--ignore unmatch my bad file.txt'
    :对于每次提交,如果存在名为“my bad file.txt”的文件,请将其解压缩

  • master..abc
    :对分支abc上的所有提交执行此操作,并将其返回到从主分支分叉的位置


我这样做了,现在删除了我的文件。现在我想把这些变化合并回头部。你能帮我怎么做吗?@al0neevenings:这之后没什么特别的。执行正常的
git签出主控
git合并
。如果你对此有疑问,请作为新问题提问。