В git log ищем более полезный вариант --first-parent - PullRequest
0 голосов
/ 16 октября 2018

У меня есть 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 показывает тысячи строк различийдля bb55ba3 относительно 1055f06, а не трех линий реальных изменений от 67d18aa.В интерфейсе github нет простого способа увидеть, что в действительности делает этот коммит.
  • Точно так же git log --first-parent уничтожает большую часть истории
  • В основном, это просто оскорбляет мои чувства, так как якак чистые истории.

Я уже учил автора, как избежать этой проблемы в будущем, но мой вопрос:

Есть ли способ рассказать github и --first-parent какой ветке следовать, не переписывая историю?Что-нибудь еще, что я могу сделать, чтобы сделать это чище, без переписывания истории?

(Тем не менее, я, вероятно, мог бы переписать историю, так как проект является частным, и только горстка людей может его увидеть. Так что, возможно,это лучший вариант? Или я слишком навязчиво опрятен, даже не волнуясь об этом?)

О, и связанный с этим вопрос: подобные проблемы, вероятно, будут кусать меня в будущем.Могут ли я установить какие-либо git-хуки, которые предотвратят эту и подобные проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...