删除上一次(而不是最近一次)提交中已推送的单个文件



我有一些推送提交,这就是我的远程分支的样子:

Date: June 25, SHA: 123, files: a,b, message: fix code feedback
Date: June 24, SHA: 234, files: b, message: move pixel margins
Date: June 23, SHA: 345, files: a,b,c,d, message: Initial Commit

我不小心提交了文件";d">在我要从提交中删除的初始提交中。我该怎么做?我是唯一一个在这家分店工作的人。

两个事实:

  • 您不能更改提交。

  • 提交与您添加或编辑的文件无关每个提交都包含所有文件。

因此,如果您在初始提交中提交了d,则除非您在后续提交中提交删除d,否则所有提交都包含d

为了假装这没有发生,你必须重写你的整个历史——替换你所有的提交。这是一个有点令人担忧的命题,但有一些工具可以做到这一点

https://github.com/newren/git-filter-repo

如果在你的整个历史中真的只有三次提交,那么你最好重新开始。

最新更新