2009-06-30 10 views
294

Killswitchcollective.com's old article, 30 June 2009, ha i seguenti ingressi e le usciteImpossibile visualizzare un albero Git nel terminale

git co master 
git merge [your_branch] 
git push 

upstream A-B-C-D-E   A-B-C-D-E-F-G 
       \  ---->    \ 
your branch  C-D-E      G 

Sono interessato come si ottiene l'albero come vista di commit nel vostro terminale senza l'utilizzo Gitk o GitX in OS/X.

Come si può ottenere la visualizzazione ad albero dei commit nel terminale?

+0

Non è importante la questione, ma l'articolo la domanda non è più disponibile. Una copia memorizzata nella cache è disponibile tramite l'archivio Internet: https://web.archive.org/web/20110831142839/http://killswitchcollective.com/articles/36_git_it_got_it_good –

risposta

520

Come si può ottenere la visualizzazione ad albero dei commit nel terminale?

git log --graph --oneline --all 

è un buon inizio.

Potresti ricevere delle lettere strane. Sono codici ASCII per colori e struttura. Per risolvere questo problema aggiungere il seguente al vostro .bashrc:

export LESS="-R" 

tale che non è necessario l'uso del filtro ASCII del Tig da

git log --graph --pretty=oneline --abbrev-commit | tig // Masi needed this 

L'articolo text-based graph from Git-ready contiene altre opzioni:

git log --graph --pretty=oneline --abbrev-commit 

git log graph

Per quanto riguarda l'articolo che citi, vorrei andare con Pod's answer: produzione ad-hoc fatta a mano.


Jakub Narębski menzioni nei commenti tig, un interfaccia in modalità testo basato su ncurses per git. Vedi their releases.
Essa ha aggiunto a --graph option nel 2007.

+1

Il tuo secondo comando mi dà http://files.getdropbox.com /u/175564/gitTree.png –

+1

L'ho appena testato sul mio repository. Funziona ma sono su Windows con MSysGit1.6.3. – VonC

+0

files.getdropbox.com è bloccato qui al lavoro :(Vedrò la tua foto tra circa un'ora, il tempo di tornare a casa – VonC

228

Una soluzione è quella di creare un alias nel .gitconfig e chiamare facilmente:

[alias] 
    tree = log --graph --decorate --pretty=oneline --abbrev-commit 

E quando si chiama la prossima volta, potrai usare:

git tree 

per dirla in ~/.gitconfig senza dover modificare esso, si può fare:

git config --global alias.tree "log --graph --decorate --pretty=oneline --abbrev-commit" 

(Se non si utilizza il --global che verrà messo in .git/config del vostro repo corrente.)

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

Un albero visivo con i nomi di filiale incluso.

Utilizzare questo per inserirlo come un alias

git config --global alias.tree "log --oneline --decorate --all --graph" 

Si chiama con

git tree 

Git Tree

40

tig

Se si desidera un interattivo albero , è può utilizzare tig. Può essere installato da brew su OSX e apt-get in Linux.

brew install tig 
tig 

Questo è quello che si ottiene:

enter image description here

+0

Puoi ottenere un albero come nella risposta di VonC di Tig attualmente? Usiamo Tig nella risposta di VonC solo come filtro Ascii. –

0

Mantenere il proprio comandi breve renderà più facili da ricordare:

git log --graph --oneline