Как читать график журнала git

95

В книге сообщества git сказано

Еще одна интересная вещь, которую вы можете сделать, - это визуализировать график фиксации с помощью опции '--graph', например:

$ git log --pretty=format:'%h : %s' --graph
* 2d3acf9 : ignore errors from SIGCHLD on trap
*   5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 : Added a method for getting the current branch.
* | 30e367c : timeout code and tests
* | 5a09431 : add timeout protection to grit
* | e1193f8 : support for heads with slashes in them
|/
* d6016bc : require time for xmlschema

Это даст довольно красивое ASCII-представление строк истории коммитов.

Как мне читать этот график? Чем 420eac9отличается от остальных?

Майкл
источник

Ответы:

118

Звездочки показывают, где что-то было совершено:

e1193f8, 5a09431и 30e367cбыли зафиксированы в левой ветви (давая a |в правой ветви), тогда как 420eac9были зафиксированы в правой ветви (давая a |в левой ветви). И это то, 420eac9что отличает от остальных: это единственный коммит в правильную ветку.

Для полноты:

  • d6016bc была точка ветвления
  • 5e3ee11 это коммит слияния
  • 2d3acf9 это первая фиксация после слияния
Eckes
источник
4
У меня возник вопрос о времени фиксации, как показано на графике. На графике «420eac9» показано над «30e367c», «5a09431» и «e1193f8». Всегда ли это означало бы, что '420eac9' был зафиксирован после трех других, или же коммиты в ветке сгруппированы вместе, и порядок, в котором они появляются в ветвях, не имеет временной корреляции?
Parag
4
@Parag: коммиты в ветке сгруппированы вместе. 420eac9было сделано после первого коммита e1193f8ветки, но не обязательно после30e367c
eckes
1
@eckes, так что |символы слева ( крайний слева) представляют ветку, в которой я сейчас нахожусь?
J86,
@ J86, если вы переключитесь на другую ветку и запустите ту же команду, вы получите тот же результат, поэтому на графике нет ссылки на текущую ветку, в которой вы находитесь
onofricamila
19

420eac9находится в другой ветке, чем 3 коммита «ниже». Затем ветви разошлись, d6016bcи они слились 5e3ee11.

Ilkka
источник
5
Возможно, лучшая формулировка, чем расходящиеся ветви, - это то, что вторая ветвь была создана d6016bcи развивалась параллельно с исходной ветвью.
Ilkka