如何在github存储库中编辑初始提交?

如何在github存储库中编辑初始提交?,git,git-rebase,Git,Git Rebase,我正在处理一个我分叉的存储库,其中作者采用了脏路径,并在初始提交时将其所有依赖项填充到lib/目录中。通常情况下,如果不是初始提交,我只需执行一个交互式重基并删除整个提交(如果他只是这么做的话)。但是,我不知道如何编辑/删除初始提交。有没有一种方法可以编辑初始提交并删除lib目录,而不必触及它的其余部分 编辑 我无意中在这里找到了答案:在所选答案中。这就是我没有更彻底地搜索的结果 $ git filter-branch --parent-filter \ 'test $GIT_COMMIT

我正在处理一个我分叉的存储库,其中作者采用了脏路径,并在初始提交时将其所有依赖项填充到lib/目录中。通常情况下,如果不是初始提交,我只需执行一个交互式重基并删除整个提交(如果他只是这么做的话)。但是,我不知道如何编辑/删除初始提交。有没有一种方法可以编辑初始提交并删除lib目录,而不必触及它的其余部分

编辑

我无意中在这里找到了答案:在所选答案中。这就是我没有更彻底地搜索的结果

$ git filter-branch --parent-filter \
  'test $GIT_COMMIT = SECOND && echo "" || cat' \
  --tag-name-filter cat -- --all
其中SECOND是您希望成为新根的commit的SHA-1

以上假设所有分支使用相同的第一次和第二次提交。如果不是,则需要在父过滤器中泛化测试


请注意,这是一个极端的措施:它将重写您的整个历史,并阻止您遵循作者的回复。此外,如果您已将回购推送到远程,则需要使用
git push-f

对其进行重击。警告:Ref'refs/heads/master'未更改警告:Ref'refs/remotes/origin/master'未更改警告:Ref'refs/remotes/origin/master'未更改是它给我的。确认!您希望重写第二次提交的父级,而不是第一次提交。请参阅更新的答案,并为错误的开始感到抱歉。在您编辑本文之前,我想出了一种不同的方法(如我的编辑中所示)。我将假设这确实有效(我完全相信你不会因为
echo 0000000000000000000000000000>.git/info/grafts;git filter branch
而变得更短)?