Przeglądanie drzewa pełnej wersji w git

115

Używam wersji Git i gitk z wiersza poleceń. Chcę zobaczyć pełne drzewo wersji, a nie tylko część, do której można dotrzeć z aktualnie pobranej wersji. Czy to możliwe?

petersohn
źródło

Odpowiedzi:

79

Możesz spróbować następujących rzeczy:

gitk --all

Możesz powiedzieć, gitkco wyświetlić, używając wszystkiego, co git rev-listrozumie , więc jeśli potrzebujesz tylko kilku gałęzi, możesz zrobić:

gitk master origin/master origin/experiment

... lub bardziej egzotyczne rzeczy, takie jak:

gitk --simplify-by-decoration --all
Mark Longair
źródło
292

jeśli nie masz interfejsu graficznego, możesz także wydrukować wykres zatwierdzenia w wierszu poleceń:

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

jeśli to polecenie narzeka z niepoprawną opcją --oneline, użyj:

git log --pretty=oneline --graph --decorate --all
knittl
źródło
6
kto potrzebuje gitk, kiedy mamy gitl! alias gitl = 'git log --oneline --graph --decorate --all'
Thunder Rabbit
10
alias gl='git log --oneline --graph --decorate --all'. Po co pisać więcej niż potrzeba;)
Dana Woodman
Mam nadzieję, że skróty linii poleceń zostały wynalezione przed uzupełnieniem tabulatorów. Przynoszą korzyści tylko tym, którzy często używają tych poleceń i tym, którzy mają szalone wspomnienia.
aaaaaa
121
  1. Kiedy jestem w miejscu pracy z terminalem, używam:

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

    wprowadź opis obrazu tutaj

  2. Kiedy system operacyjny obsługuje GUI, używam:

    gitk --all

    wprowadź opis obrazu tutaj

  3. Kiedy jestem na moim domowym komputerze z systemem Windows, używam własnego GitVersionTree

    wprowadź opis obrazu tutaj

suma kontrolna
źródło
Doskonała odpowiedź dla mnie. Mój system operacyjny obsługuje GUI, więc druga opcja to moja droga, ale powiedzmy, że chcę bardzo szybko zerknąć na wykres z wiersza poleceń: czy jest jakiś sposób, aby uniknąć wpisywania wszystkich tych przełączników z pierwszej wersji, czy po prostu ponownie wpisywać je cały czas? Dziękuję Ci.
rchrd
1
@rchrd Ustawiłbym je jako alias, uruchamiając git config --global alias.ver "log --oneline --graph --color --all --decorate"i wystarczy wpisać git verpóźniej.
suma kontrolna
23

Jest bardzo dobra odpowiedź na to samo pytanie.
Dodanie następujących wierszy do „~ / .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"
Daniil Shevelev
źródło
5

Reputacja nie wystarczy, aby skomentować odpowiedź Knittla, więc:

Jeśli nie potrzebujesz nazwy oddziału lub tagu:
git log --oneline --graph --all --no-decorate

Jeśli nie potrzebujesz nawet koloru (aby uniknąć sekwencji klawiszy podczas wyprowadzenia):
git log --oneline --graph --all --no-decorate --no-color

Możesz użyć aliasu (w .gitconfig), aby ułatwić życie:

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

Działa tylko ostatnia opcja, więc można nawet zastąpić swój alias:
git tree --decorate

clarkttfu
źródło