从git中的某个提交中删除文件(在历史记录中)

时间:2012-11-08 08:44:49

标签: git gerrit

想象一下,您已经提交了多项更改(在单独的提交中)。例如,我们有3个提交:A,B和C.

现在,您已经发现在提交B中添加了一个您不应该提交的特定文件(包括一些更改)。

如何在该提交中删除该文件?

一个例子很棒。

由于

2 个答案:

答案 0 :(得分:1)

git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD

此命令将从[历史记录]的所有提交中删除文件。

警告:如果您已经与他人分享了您的工作,则不建议您使用此命令。在使用此命令之前,请确保您了解完整含义。

答案 1 :(得分:1)

你也可以

git rebase --interactive A

并编辑提交B,不包括有问题的文件

但同样的警告适用 如果您在B之后的任何提交中对文件进行了更改,则这些更改将无法应用