Git: Упростить граф коммитов? - PullRequest
3 голосов
/ 24 ноября 2011

Если я посмотрю на граф коммитов с gitk --all, то это довольно сложно (я много разветвлялся и сливался просто для удовольствия в маленьком проекте с одним человеком). Теперь мне стало интересно, есть ли способ упростить этот график?

Упрощение в смысле удаления ненужных ветвлений (все ветки в какой-то момент объединяются в master)

Ответы [ 2 ]

3 голосов
/ 24 ноября 2011

Я вполне уверен, что вы ищете первую родительскую опцию, которая заставляет Git переходить только к первому родительскому коммиту коммитов при прохождении истории.Вы можете использовать его из командной строки:

git log --first-parent
gitk --first-parent

или в gitk: View> New view ...> Limit to first parent (в разделе Разное).

Конечно, вы можететакже не хочу использовать --all;gitk <commit>... показывает только историю, начинающуюся с заданных коммитов (которая может быть указана как ветви), и без аргументов она по умолчанию принимает текущую ветвь.чтобы увидеть, вы можете использовать некоторые другие опции, перечисленные в разделе «Упрощение истории» в man git-log.В частности, есть --ancestry-path, который может использоваться для отображения только прямого пути происхождения: git log --ancestry-path commit1..commit2.gitk обычно принимает те же параметры спецификации фиксации, что и git-log, который по очереди наследует их от git-rev-list.

1 голос
/ 29 апреля 2013

Если вы хотите просмотреть всю историю, - все может быть слишком много.Вот несколько вариантов, которые могут дать вам представление о том, что готовится в репо:

git --simplify-by-decoration --all
gitk --simplify-by-decoration --all

Он покажет все коммиты, «помеченные» ссылками или тегами, включая те, которые не помечены как необходимые для понимания предков (довольнополезно).См. git log history упрощения

Отвечая на ваши точные вопросы, которые вы можете использовать:

git --simplify-merges --all
gitk --simplify-merges --all 

, но это включено в - упрощение по оформлению

Я часто использую это (в командной строке), поэтому я использую псевдоним:

git config --global alias.logs 'log --simplify-by-decoration --graph --color --oneline --decorate'

Чтобы использовать его:

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