我正在处理一个我 fork 的存储库,作者在其中采用了肮脏的路径,并在初始提交时将他所有的依赖项都塞进了 lib/目录中。通常,如果不是初始提交,我只会进行交互式 rebase 并删除整个提交(如果这就是他所做的全部)。但是,我不知道如何编辑/删除初始提交。有没有一种方法可以编辑初始提交并删除 lib 目录而不触及其余部分?
编辑
我在这里偶然发现了答案:Can I remove the initial commit from a Git repo?在选定的答案中。这就是我没有更彻底地搜索得到的结果。
最佳答案
$ git filter-branch --parent-filter \
'test $GIT_COMMIT = SECOND && echo "" || cat' \
--tag-name-filter cat -- --all
其中 SECOND 是您希望成为新根的提交的 SHA-1。
以上假设所有分支都使用相同的第一次和第二次提交。如果不是,您需要在父过滤器中概括测试。
请注意,这是一项严厉的措施:它将重写您的整个历史记录,并阻止您关注作者的 repo 协议(protocol)。此外,如果您已将存储库推送到远程,则需要使用 git push -f
破坏那些。
关于git - 如何编辑 github 存储库中的初始提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2066006/