我最近有7次提交要删除文件夹 - 此文件夹(及其内容)不需要在这些提交中,并且不在之前的提交中(在过去7次之前)。我可以修改过去最近的7次提交并删除此文件夹吗?
这7个提交不是在Master分支上进行的。因此,另一种可能的选择是从主服务器创建一个新的分支/拉取请求,并重新提交最近的7个提交,而不会有相关的文件夹被暂存。
这些选项中的任何一个都可以吗?
答案 0 :(得分:4)
有两个基本选项。
首先,如果文件是在这七个提交的第一个中添加的,并且在后面的六个提交中没有被触及,则可以git rebase -i
,为第七个最早的提交选择“编辑” ,添加文件的那个,然后在回到shell后你可以“git rm”你想要摆脱的东西,提交,git rebase --continue
,然后在剩余的提交重播之后再次重新绑定,并将新提交压缩到其父级。这将是处理这种情况的最简单方法。
否则,您可以git filter-branch
使用--tree-filter
选项,从所有七次提交中擦除相关文件。
编辑:请注意,此操作过程假定您没有推动您的分支。如果你已经推动了这个分支,这就会增加一些额外的后勤工作。基本上,一旦你推动,你需要与依赖你的分支的任何其他人协调这个动作,因为你会让他们保持高度干燥。您基本上会丢弃当前的分支,并将其替换。