在git log中,寻找--first-parent的更有用的变体

时间:2018-10-16 13:42:18

标签: git github

我有一个git项目,一个贡献者在很长一段时间后回来了,并且在提交之前做了一个丑陋的合并,而不是拉扯。

结果,项目历史现在看起来像:

e6a1272 * Current tip
3750671 *   Another (somewhat less ugly) merge
        |\  
a5df959 | * Progress...
bb55ba3 * |   Ugly merge.  Catch up on weeks of progress, plus add one line
        |\ \  
        | |/  
67d18aa | * Many more commits...
937909a | * ...
094c77a | * Progress...
3ac93c1 | * Progress...
cbca9b4 * | Progress...
        |/  
1055f06 * An old commit, weeks ago
449cb7c * Another old commit
...

说句公道话,这并不可怕,但是:

  • 在清晰的线性历史中有蜘蛛踪迹
  • github显示了bb55ba31055f06相对的数千行差异,而不是67d18aa的三行实际变化。在github界面中,没有简单的方法来查看此提交的实际作用。
  • 类似地,git log --first-parent消除了大部分历史
  • 大多数情况下,因为我喜欢干净的历史,这只会冒犯我的感情。

我已经辅导过贡献者将来如何避免这个问题,但是我的问题是:

有没有办法在不重写历史的情况下告诉github和--first-parent遵循哪个分支?在不重写历史记录的情况下,我还能做些什么使它更清洁?

(也就是说,我可能可以重写历史记录,因为该项目是私有的,只有少数人可以看到它。因此,也许这是最好的选择?或者我是否因为担心这个而过于整洁? )

哦,还有一个相关的问题:类似的问题将来可能会困扰我。我可以设置任何可以防止这种和类似问题的git hook吗?

0 个答案:

没有答案