Просмотр полного дерева версий в git

116

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

Петерзон
источник

Ответы:

80

Вы можете попробовать следующее:

gitk --all

Вы можете указать, gitkчто отображать, используя все, что git rev-listпонимает , поэтому, если вам просто нужно несколько веток, вы можете сделать:

gitk master origin/master origin/experiment

... или более экзотические вещи вроде:

gitk --simplify-by-decoration --all
Марк Лонгэр
источник
292

если у вас нет графического интерфейса, вы также можете распечатать график фиксации в командной строке:

git log --oneline --graph --decorate --all

если эта команда сообщает о недопустимом параметре --oneline, используйте:

git log --pretty=oneline --graph --decorate --all
knittl
источник
6
кому нужен gitk, когда у нас есть gitl! псевдоним gitl = 'git log --oneline --graph --decorate --all'
Кролик Грома
10
alias gl='git log --oneline --graph --decorate --all'. Зачем печатать больше, чем нужно;)
Дана Вудман
Я надеюсь, что сокращения командной строки были придуманы до завершения табуляции. Они приносят пользу только тем, кто много использует эти команды, и тем, у кого безумная память.
aaaaaa
123
  1. Когда я на работе только с терминалом, я использую:

    git log --oneline --graph --color --all --decorate

    введите описание изображения здесь

  2. Когда ОС поддерживает графический интерфейс, я использую:

    gitk --all

    введите описание изображения здесь

  3. Когда я нахожусь на своем домашнем ПК с Windows, я использую свой собственный GitVersionTree

    введите описание изображения здесь

контрольная сумма
источник
Идеальный ответ для меня. Моя ОС поддерживает графический интерфейс, поэтому я предпочитаю второй вариант, но, допустим, я просто хочу очень быстро взглянуть на график из командной строки: есть ли способ избежать ввода всех этих переключателей из первой версии, или вы просто повторно типа их все время? Спасибо.
rchrd
1
@rchrd Я бы установил их как псевдонимы, запустив их, git config --global alias.ver "log --oneline --graph --color --all --decorate"и мне нужно было вводить их только git verпосле этого.
контрольная сумма
23

На тот же вопрос есть очень хороший ответ .
Добавляем следующие строки в "~ / .gitconfig":

[alias]
lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"
Даниил Шевелев
источник
6

Если вам не нужно имя ветки или тега:
git log --oneline --graph --all --no-decorate

Если вам даже не нужен цвет (чтобы избежать последовательности клавиш при выводе):
git log --oneline --graph --all --no-decorate --no-color

И удобный псевдоним (в .gitconfig) для облегчения жизни:

[alias]
  tree = log --oneline --graph --all --no-decorate

Только последняя опция вступает в силу, поэтому вы даже можете изменить свой псевдоним:
git tree --decorate

Clarkttfu
источник