从git中的某个提交(回到历史)中删除文件

从git中的某个提交(回到历史)中删除文件,git,gerrit,Git,Gerrit,假设您已经提交了多个更改(在单独的提交中)。例如,我们有3个提交:A、B和C 现在,您发现在提交B中添加了一个不应该提交的特定文件(包括一些更改) 您将如何在提交中删除该文件 举个例子就好了 谢谢 此命令将从所有提交[从历史记录]中删除文件 警告:如果您已经与其他人共享了您的工作,则不建议使用此命令。在使用此命令之前,请确保您理解了全部含义。您也可以这样做 git rebase --interactive A git rebase——交互式 并编辑commit B,使其不包含有问题的文件 但同样

假设您已经提交了多个更改(在单独的提交中)。例如,我们有3个提交:A、B和C

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

您将如何在提交中删除该文件

举个例子就好了

谢谢

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

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

您也可以这样做

git rebase --interactive A git rebase——交互式 并编辑commit B,使其不包含有问题的文件

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

,但从所有提交中删除文件并不是真正需要的。也许这个文件很久以前被推过一次,不必再被更改和推过,对吗?@Hossein取决于您是否要将其从历史记录中清除。如果不是,那么在下次提交时删除文件可能会更好。如果您想将其从整个历史记录中删除,例如,因为您的内部有一些私人数据(如密码),那么如果有人已经获取了您的提交,您可能会运气不佳-请参阅适用于所有DVCSs的此项。 git rebase --interactive A