Visualizando a árvore da versão completa no git

114

Estou usando a versão de linha de comando do Git e do gitk. Quero ver a árvore da versão completa, não apenas a parte que pode ser acessada pela versão em check-out. É possível?

Petersohn
fonte

Respostas:

79

Você pode tentar o seguinte:

gitk --all

Você pode dizer gitko que exibir usando qualquer coisa que git rev-listentenda , então se você quiser apenas alguns ramos, você pode fazer:

gitk master origin/master origin/experiment

... ou coisas mais exóticas como:

gitk --simplify-by-decoration --all
Mark Longair
fonte
291

se acontecer de você não ter uma interface gráfica disponível, você também pode imprimir o gráfico de confirmação na linha de comando:

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

se este comando reclamar de uma opção inválida --oneline, use:

git log --pretty=oneline --graph --decorate --all
tricô
fonte
6
quem precisa do gitk quando temos gitl! alias gitl = 'git log --oneline --graph --decorate --all'
Thunder Rabbit
10
alias gl='git log --oneline --graph --decorate --all'. Por que digitar mais do que o necessário;)
Dana Woodman
Espero que as abreviações de linha de comando tenham sido inventadas antes da conclusão da guia. Eles só beneficiam quem usa muito esses comandos e quem tem memórias malucas.
aaaaaa
120
  1. Quando estou no meu local de trabalho apenas com o terminal, eu uso:

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

    insira a descrição da imagem aqui

  2. Quando o sistema operacional oferece suporte a GUI, eu uso:

    gitk --all

    insira a descrição da imagem aqui

  3. Quando estou em meu PC com Windows doméstico, uso meu próprio GitVersionTree

    insira a descrição da imagem aqui

soma de verificação
fonte
Resposta perfeita para mim. Meu sistema operacional suporta GUI, então a segunda opção é o meu caminho, mas vamos dizer que eu só quero espiar o gráfico da linha de comando muito rapidamente: há alguma maneira de evitar digitar todas as opções da primeira versão, ou você apenas voltar digite-os o tempo todo? Obrigado.
rchrd
1
@rchrd eu os configuraria como apelidos executando git config --global alias.ver "log --oneline --graph --color --all --decorate"e só precisaria digitar git verdepois disso.
checksum
23

Existe uma resposta muito boa para a mesma pergunta.
Adicionando as seguintes linhas 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"
Daniil Shevelev
fonte
5

Reputação não é suficiente para comentar a resposta de knittl, então:

Se você não precisa do nome do branch ou tag:
git log --oneline --graph --all --no-decorate

Se você nem precisa de cor (para evitar a sequência de teclas quando vazada):
git log --oneline --graph --all --no-decorate --no-color

Você pode querer usar um alias (em .gitconfig) para tornar a vida mais fácil:

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

Apenas a última opção entra em vigor, então é ainda possível substituir seu alias:
git tree --decorate

Clarkttfu
fonte