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

时间:2010-01-14 17:11:11

标签: git git-rebase

我正在研究一个我分叉的存储库,其中作者采用了脏路径并在初始提交中将所有依赖项填充到lib /目录中。通常,如果它不是初始提交,我只会做一个交互式rebase并删除整个提交(如果这就是他所做的全部)。但是,我不知道如何编辑/删除初始提交。有没有办法可以编辑初始提交并删除lib目录而不触及其余部分?

修改

我偶然发现了答案:Can I remove the initial commit from a Git repo?在所选答案中。这就是我没有更彻底地搜索的结果。

1 个答案:

答案 0 :(得分:4)

$ git filter-branch --parent-filter \
  'test $GIT_COMMIT = SECOND && echo "" || cat' \
  --tag-name-filter cat -- --all

其中 SECOND 是您想要成为新根的提交的SHA-1。

以上假设所有分支使用相同的第一次和第二次提交。如果没有,您需要在父过滤器中推广测试。

请注意,这是一个极其重要的措施:它会重写您的整个历史记录,并阻止您关注作者的回购。此外,如果你将你的回购推送到遥控器,你需要用git push -f来破坏它们。