仅从一个分支中删除文件的历史记录,而不是整个仓库

Zty*_*tyx 5 git

我有一个主题分支(关闭master)有很多变化.在本主题分支的历史中,对某个文件进行了大量更改.如何在我的主题分支的历史记录中删除对此文件的所有更改?

补充说明:

  • 请注意,该文件创建主题分支之前存在.我不想删除文件本身.
  • 我有几个解决方案,但到目前为止它们看起来很单调乏味.我会将它们作为单独的答案发布.
  • 可以git filter-branch以某种方式用于此吗?
  • 我的主题分支包含...说... 60次提交.

Zty*_*tyx 5

使用git filter-branch

$ git checkout topic-branch
$ git filter-branch --index-filter 'git checkout master -- myfile' master..HEAD
Run Code Online (Sandbox Code Playgroud)