Visualizzazione dell'albero della versione completa in git


115

Sto usando la versione a riga di comando di Git e gitk. Voglio vedere l'albero della versione completa, non solo la parte che è raggiungibile dalla versione attualmente estratta. È possibile?

Risposte:


79

Puoi provare quanto segue:

gitk --all

Puoi dire gitkcosa mostrare usando tutto ciò che git rev-listcapisce , quindi se vuoi solo pochi rami, puoi fare:

gitk master origin/master origin/experiment

... o cose più esotiche come:

gitk --simplify-by-decoration --all

292

se ti capita di non avere un'interfaccia grafica disponibile puoi anche stampare il grafico di commit sulla riga di comando:

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

se questo comando si lamenta di un'opzione non valida --oneline, usa:

git log --pretty=oneline --graph --decorate --all

6
chi ha bisogno di gitk quando abbiamo gitl! alias gitl = 'git log --oneline --graph --decorate --all'
Thunder Rabbit

10
alias gl='git log --oneline --graph --decorate --all'. Perché digitare più del necessario;)
Dana Woodman

Spero che le abbreviazioni della riga di comando siano state inventate prima del completamento della scheda. Sono vantaggiosi solo per coloro che usano molto quei comandi e quelli con ricordi pazzi.
aaaaaa

121
  1. Quando sono sul posto di lavoro solo con il terminale, utilizzo:

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

    inserisci qui la descrizione dell'immagine

  2. Quando il sistema operativo supporta la GUI, utilizzo:

    gitk --all

    inserisci qui la descrizione dell'immagine

  3. Quando sono nel mio PC Windows di casa, utilizzo il mio GitVersionTree

    inserisci qui la descrizione dell'immagine


Risposta perfetta per me. Il mio sistema operativo supporta la GUI, quindi la seconda opzione è la mia strada da percorrere, ma diciamo che voglio solo dare un'occhiata al grafico dalla riga di comando molto rapidamente: c'è un modo per evitare di digitare tutti quegli interruttori dalla prima versione, o semplicemente ri- digitarli tutto il tempo? Grazie.
rchrd

1
@rchrd li avrei impostati come alias eseguendo git config --global alias.ver "log --oneline --graph --color --all --decorate"e solo git versuccessivamente ho bisogno di digitare .
checksum

23

C'è un'ottima risposta alla stessa domanda.
Aggiunta delle seguenti righe a "~ / .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"

5

La reputazione non è sufficiente per commentare la risposta di knittl, quindi:

Se non hai bisogno del nome del ramo o del tag:
git log --oneline --graph --all --no-decorate

Se non hai nemmeno bisogno del colore (per evitare la sequenza di tasti quando viene trasmesso):
git log --oneline --graph --all --no-decorate --no-color

Potresti voler usare alias (in .gitconfig) per semplificarti la vita:

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

Solo l'ultima opzione ha effetto, quindi è anche possibile sovrascrivere il tuo alias:
git tree --decorate

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.