Close

GitK

O Gitk é um navegador de repositório gráfico. Foi o primeiro desse tipo. Ele pode ser pensado como wrapper de GUI para git log. É útil para explorar e visualizar o histórico do repositório. Está escrito em tcl/tk, o que o torna portátil em todos os sistemas operacionais. O gitk é mantido por Paul Mackerras como um projeto independente, separado do núcleo do Git. As versões estáveis são distribuídas como parte do pacote Git para a conveniência dos usuários finais. O Gitk pode ser uma ajuda de aprendizagem útil para iniciantes no Git.


Gitk overview


O Gitk pode ser um utilitário de aprendizado útil para quem é novo no controle de versão ou para aqueles que estão fazendo a transição de outro sistema de controle de versão, como o subversion. O Gitk é um utilitário de conveniência que vem com o Git core. Ele proporciona uma interface gráfica do usuário que ajuda na visualização da mecânica interna do Git. Outras GUIs popular do Git são o git-gui e o próprio Sourcetree da Atlassian.

Uso


O Gitk é invocado semelhante ao git log. A execução do comando gitk vai iniciar a interface do usuário do Gitk, que vai ser semelhante a seguinte:

Initial kopiera

O painel superior esquerdo exibe as confirmações no repositório, com o mais recente no topo. O canto inferior direito exibe a lista de arquivos afetados pelo commit selecionada. O painel inferior esquerdo exibe as informações do commit e a diferença completa. Clicar em um arquivo no painel inferior direito focaliza a diferença no painel inferior esquerdo para a seção relevante.

O Gitk vai refletir no estado atual do repositório Se o estado do repositório for modificado por meio do uso separado da linha de comando, como alterar ramificações, o Gitk precisa ser recarregado. O Gitk pode ser recarregado no menu Arquivo -> Recarregar.

bancos de dados
Material relacionado

Como mover um Repositório do Git completo

Logotipo do Bitbucket
VER SOLUÇÃO

Aprenda a usar o Git com o Bitbucket Cloud

Por padrão, o Gitk vai renderizar o histórico atual dos commits. O Gitk tem uma variedade de opções de linha de comando que podem ser passadas na inicialização. Essas opções restringem a lista de commits renderizadas para a visualização de nível superior do Gitk. A forma geral de execução com essas opções de revisão é a seguinte:

Opções


    gitk [<options>] [<revision range>] [--] [<path>…]

    <revision range>

Um intervalo de revisão na forma ".. " pode ser passado para mostrar todas as revisões entre e de volta para . Como alternativa, uma única revisão pode ser aprovada.

  <path>…

Limite os commits a um caminho de arquivo específico. Para isolar caminhos de nomes de revisão, use "--" para separar os caminhos de qualquer opção anterior.

--all

Mostra todas as ramificações, marcações, refs.

--branches[=<pattern>] --tags[=<pattern>] --remotes[=<pattern>]

Displays the selected item (branches, tags, remotes) as if they were mainline commits. When <pattern> is passed, further limits refs to ones matching the specified pattern

    --since=<date>

Mostrar confirmações mais recentes do que a data especificada.

    --until=<date>

Mostrar as confirmações mais antigas do que a data especificada.

    --date-order

Classifica as confirmações por data.

    --merge

Mostrar confirmações que modificam arquivos em conflito que foram identificados durante um merge

    --left-right

Mostra categorias informativas que indicam de que lado de um commit de comparação é. Os commits do lado esquerdo são prefixados com um< símbolo e os da direita com um> símbolo.

    --ancestry-path

Quando for dado um intervalo de commits para exibir (por exemplo. commit1.. commit2 ou commit2 commit1), exibe apenas commits que existem direto na cadeia de ancestralidade entre o commit1 e commit2, ou seja, commits que são descendentes de commit1 e ancestrais de commit2. (Consulte Simplificação do" histórico" no git-log (1) para uma explicação mais detalhada.)

L<start>,<end>:<file>

Opções poderosas que permitem rastrear o histórico de um determinado intervalo de números de linha de código.

Discussion & examples


Para apresentar qualquer resultado valioso, o Gitk precisa de um repositório subjacente com histórico comprometido. O código a seguir é uma sequência de comandos bash que vai criar um novo repositório com duas ramificações que têm confirmações e foram mescladas em uma.

    mkdir gitkdemo &&
    cd gitkdemo &&
    git init . &&
    echo "hello world" > index.txt &&
    git add index.txt &&
    git commit -m "added index.txt with hello world content"

Este repositório de demonstração vai ser um bom exemplo para explorar com o Gitk. Essa sequência de comandos cria um novo repositório com 1 commit e um arquivo index.txt. Vamos agora invocar o gitk para examinar o repositório.

First commit

Can Gitk compare two commits?


Vamos continuar com o repositório de demonstração e criar um commit adicional:

 echo "prpended content to index" >> index.txt &&
    git commit -am "prepended content to index"

Assim que os comandos em andamento forem executados, o gitk precisa ser recarregado. Recarregue o gitk na linha de comando ou use a GUI e navegue até Arquivo -> Recarregar. Depois de recarregado, devemos ver a nova confirmação.

Next commit

Podemos ver que a referência da ramificação principal agora está apontada para a nova confirmação. Para comparar essas duas confirmações, usamos o painel de histórico superior esquerdo. No painel de histórico, clique em um commit que vai ser a base do diff. Depois de selecionado, clique com o botão direito do mouse no segundo commit para abrir um menu de contexto.

Commit diff

Esse menu de contexto vai oferecer as seguintes opções

    Diff this -> selected
    Diff selected -> this

Selecionar uma dessas opções vai fazer com que uma diferença entre as duas confirmações apareça no painel inferior esquerdo, que no exemplo vai ser semelhante a:

Diff output

A saída do diff nos mostra que o index.txt tinha uma nova linha de "conteúdo anexado ao índice" adicionada entre as duas confirmações.

How to use Gitk to compare two branches


Continuando com o repositório de exemplo, vamos criar uma nova ramificação.

    git checkout -b new_branch &&
    echo "new branch content" > new_branch_file.txt &&
    git add new_branch_file.txt &&
    git commit -m "new branch commit with new file and prepended content" &&
    echo "new branch index update" >> index.txt &&
    git commit -am "new branch commit to index.txt with new content"

A sequência de comandos em andamento vai criar uma nova ramificação chamada new_branch e vai adicionar o arquivo new_branch_file.txt a ela. Além disso, um novo conteúdo é adicionado ao index.txt e uma confirmação adicional é feita para essa atualização. Agora temos uma nova ramificação que está 2 confirmações à frente do main. Precisamos recarregar o Gitk para refletir essas mudanças.

New branch

Essa é uma ótima oportunidade de aprendizado para discutir o mecanismo de ramificação do Git. O Gitk exibe as confirmações como uma sequência em linha reta de confirmações. O termo ramificação implica que devemos esperar uma ramificação ou bifurcação no cronograma. As ramificações do Git são diferentes de outros sistemas de controle de versão. No Git, uma ramificação é um ponteiro para uma confirmação. O ponteiro se move para as confirmações à medida que são criados. Quando você cria um branch git, você não está alterando nada na estrutura do repositório ou na árvore de origem. Você está apenas criando um novo ponteiro.

Para comparar as confirmações que diferem entre as 2 ramificações, o Gitk precisa ser iniciado com um intervalo de revisão especificado. Ao executar gitk main.. new_branch, vai abrir o Gitk apenas com as confirmações entre as duas referências de ramificação

Compare branch

Este é um utilitário poderoso para comparar ramificações.

Gitk vs. Git Gui


Git Gui é outra interface gráfica de usuário baseada em Tcl/Tk para o Git. Enquanto o Gitk se concentra em navegar e visualizar o histórico de um repositório, o Git Gui se concentra em refinar confirmações individuais, anotação de arquivo único e não mostra o histórico do projeto. O Git Gui também proporciona ações de menu para iniciar o Gitk para exploração do histórico. O Git Gui também é invocado a partir da linha de comando executando git gui.

Gitk summary


Em conclusão, o Gitk é um wrapper de interface gráfica para git log. O Gitk é poderoso para visualizar e explorar a história de um repositório. O Gitk também é uma ferramenta útil para aprender os dados internos do Git.


Compartilhar este artigo
Próximo tópico

Leitura recomendada

Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.

Pessoas colaborando usando uma parede cheia de ferramentas

Blog do Bitbucket

Ilustração do DevOps

Caminho de aprendizagem de DevOps

Demonstrações de funções no Demo Den com parceiros da Atlassian

Como o Bitbucket Cloud funciona com o Atlassian Open DevOps

Inscreva-se para receber a newsletter de DevOps

Thank you for signing up