如何清理git历史?

时间:2015-12-02 17:17:27

标签: git github

有一个情况:

  1. [添加许多文件] 开发人员意外地将外部依赖项添加到存储库(数千个文件)。
  2. [make commit] 接下来在此提交中添加了几个提交。
  3. [删除多个文件] 然后他在存储库中看到了外部依赖项,并将其删除。
  4. [make commit] 并最终提交一些提交并将其推送到掌握。
  5. 现在我在Github统计数据中看到,开发人员添加了1kk行,并删除了1kk行。

    如何清理git历史记录?如何更改这些提交并从历史记录中删除这些文件?

    谢谢

3 个答案:

答案 0 :(得分:2)

您可以使用以下任一方式使用github推荐的steps

  1. 使用x_并在步骤filter-branch而不是3添加您意外添加的目录。也请按照步骤Rackfile进行操作,这非常重要,因为您正在修改历史记录。
  2. 使用BFG,并通知其他开发者进行变基,因为8也会改变历史记录。

答案 1 :(得分:1)

您可以使用git rebase -i <last good commit>然后在编辑器中选择压缩提交添加并将文件删除为一个

这的缺点是,您只需要一个提交,您可能希望将两个更改集分开。

此外,您将重写历史记录,并且需要注意开发人员重置为新历史记录。

答案 2 :(得分:0)

git-filter-branch--tree-filter--index-filter一起使用。

链接中的更多信息。