代码之家  ›  专栏  ›  技术社区  ›  Rayne

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

  •  5
  • Rayne  · 技术社区  · 14 年前

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

    编辑

    我无意中发现了答案: Can I remove the initial commit from a Git repo? 在选定的答案中。这就是为什么我没有更彻底地搜索。

    1 回复  |  直到 14 年前
        1
  •  4
  •   Greg Bacon    14 年前
    $ git filter-branch --parent-filter \
      'test $GIT_COMMIT = SECOND && echo "" || cat' \
      --tag-name-filter cat -- --all
    

    在哪里? 第二 是要成为新根的提交的sha-1。

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

    请注意,这是一个非常激烈的措施:它将重写您的整个历史,并防止您遵循作者的报告。另外,如果你已经将回购推到远程,你需要用 git push -f .