Понимание графа истории Git - PullRequest
0 голосов
/ 01 декабря 2018

Ниже приведен график истории Git из случайного проекта GitHub, который я изучаю, чтобы узнать о Git:

enter image description here

График взят из GitKrakenGUI.

Нижний круг, направляясь вверх, разделяется на три пути.Один путь (самый правый) сливается с крайним левым путем, но средний путь продолжается.

Мой вопрос: Учитывая ту же историю Git, мог ли этот график быть нарисован по-другому?Это только одно из нескольких изображений, которые возможны (и клиент GUI в этом случае выбрал выше), или это могло быть нарисовано по-другому?Например, я собрал еще один ниже (я нарисовал сам - PhotoShop), где я удалил крайний левый путь.

enter image description here

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

(Фон: математически, график G состоит из двух наборов V и E , где V - набор вершин и E - это набор ребер. Некоторые допускают, чтобы V и / или E были мультимножествами, но большинство математиков тогда называют результат мультиграфом. В информатике мы часто называем множества узлов ; I 'Я не уверен, насколько это распространено в других дисциплинах. Графы Git - это, в частности, направленные графы, в которых ребра идут в одну сторону, которые обычно называются arcs . Дуги Git указывают от дочерней спинык родителю, а не, казалось бы, более естественному направлению «родитель-потомок» по одной простой причине: Git хочет оставить структуры данных без изменений с момента их создания, а Git сохраняет исходящие дуги с родителем.будут добавлены позже, поэтому все исходящие дуги обязательно должны указывать от дочернего элемента к родительскому (см. на странице Википедии для дополнительных примечаний к графикам.)

... мог бы этот график бытьнарисованы по-разному?

Графики можно всегда рисовать разными способами.Вопрос в том, действительно ли чертеж передает соответствующую / желаемую информацию.

Я собрал еще одну ...

Как Крис Шейн отметил в комментарии, этот чертеж предназначен для другого графика (или другого фрагмента).

В частности, обратите внимание, что исходный чертеж имеет одну круглую точку на строку: эта круглая точка представляет узел фиксации.Тот, который помечен как «Запрос извлечения слияния # 1 от alexa / master», находится на исходном чертеже, но у вашего нового чертежа есть точка без для отсутствующего слияния: этот узел больше не существует!

Как следствие, последующий узел, помеченный «Запрос извлечения слияния # 10 от JakeMKelly / add-image», имеет только одну исходящую дугу, что означает, что это не слияние - в Git коммит слияниякоммит по крайней мере с двумя родителями из-за двух исходящих дуг.

Получает ли полученный график информацию , необходимую вам ?Если так, этого достаточно.Но это отличается .

0 голосов
/ 01 декабря 2018

Предполагается, что график показывает временное (упорядоченное по времени) представление событий по мере их возникновения, а не только наиболее визуально компактное представление каждого графика.Самая левая ветвь была создана перед тремя регистрациями в правой ветке, и этот факт будет потерян в предложенном вами представлении.

...