Git-恢复旧合并中的特定文件,从历史记录中删除

时间:2020-02-02 23:48:46

标签: git

几年前,PR发生了意外更改,使更改本来不应该包含在提交中。我想从一次合并中还原一个文件,然后进行几次合并,并且也将其从历史记录中删除,而不会影响最近的合并。该文件本身尚未在其他任何提交中进行编辑。

1 个答案:

答案 0 :(得分:0)

您可以使用git filter-branch

git filter-branch --tree-filter 'rm -f <filename>' HEAD

有关更多信息,请参见Pro Git: Rewriting History

但是BFG Repo Cleaner更容易,更快捷。

bfg --delete-files <filename> <repo dir>

如果您想重写单个提交,现在可以进行几次合并,并保留这些合并,请使用带有合并的交互式基础。

git rebase -i -m -r <the commit>^

在该分支顶部工作的任何人都应该git pull --rebase=merges在更改的历史记录之上更新他们的工作。

有关更多详细信息,请参见this answer