2010-01-14 76 views
5

我正在创建一个存储库,我在其中创建了一个作者采用脏路径并将其所有依赖关系填充到初始提交中的lib /目录中。通常情况下,如果不是最初的提交,我只是做一个交互式的重新分配并删除整个提交(如果这是他所做的一切)。但是,我不知道如何编辑/删除最初的提交。有没有办法可以编辑初始提交并移除lib目录而不用触及剩下的部分? Can I remove the initial commit from a Git repo?所选答案:如何编辑github存储库中的初始提交?

编辑

我无意中得到答案在这里偶然发现。这就是我没有更彻底搜索的结果。

回答

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

其中第二是SHA-1的你想成为新的根提交。

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

请注意,这是一个非常激烈的措施:它会重写您的整个历史记录并阻止您遵循作者的回购。此外,如果您已将回购推送到遥控器,则需要用git push -f来打破这些回购。

+0

警告:REF“裁判/头/主”是不变的 警告:REF“裁判/遥控器/产地/主”是不变的 警告:REF“裁判/遥控器/产地/主”是不变的 是它给了我。 Ack! – Rayne 2010-01-14 17:21:56

+0

Ack!你想重写* second * commit的父母,而不是第一个。查看最新的答案,并为错误的开始抱歉。 – 2010-01-14 18:40:59

+0

在编辑这篇文章之前,我想出了一个不同的方式来完成它(显示在我的编辑中)。我将假设这是真的有效(我完全相信你<3),并将你的答案标记为接受。 – Rayne 2010-01-14 19:13:33

相关问题