忘了使用`--squash`,现在提交历史很乱。我怎样才能收拾这个烂摊子?

时间:2013-09-10 20:15:54

标签: git git-rebase git-log git-subtree

我应该为我的项目所依赖的第三方模块执行subtree pull --squash,但我不小心忘了放--squash。现在我的项目提交历史充斥着第三方模块提交。它们分散在整个日志中。

这个烂摊子需要消失。我如何识别属于第三方模块的所有提交,将它们压缩成一个,然后将其从项目历史中清除,如果可能的话?

更多信息:

请注意,我已经完成了几次提交,在打破操作后我打算保留这些提交。

1 个答案:

答案 0 :(得分:7)

  1. 使用git reflog在您执行损坏操作之前查找项目的状态。
  2. 查看该哈希值或git reset --hard
  3. 使用正确的标志重做操作。