Close

Gitk

Gitk è un browser di repository grafico. È stato il primo del suo genere. Può essere pensato come un wrapper GUI per git log. È utile per esplorare e visualizzare la cronologia di un repository. È scritto in tcl/tk, il che lo rende portabile su tutti i sistemi operativi. gitk è gestito da Paul Mackerras come progetto indipendente, separato da Git core. Le versioni stabili sono distribuite come parte della suite Git per la comodità degli utenti finali. Gitk può essere un utile aiuto didattico per i nuovi arrivati su Git.


Gitk overview


Gitk può essere un'utile utilità di apprendimento per chi si approccia per la prima volta al controllo delle versioni o per chi sta passando da un altro sistema di controllo delle versioni come subversion. Gitk è una comoda utilità fornita con Git principale. Offre un'interfaccia utente grafica che aiuta con la visualizzazione della meccanica interna di Git. Altre GUI Git popolari sono git-gui e Sourcetree di Atlassian.

Utilizzo


Gitk è richiamato in modo simile a git log. L'esecuzione del comando gitk avvierà l'interfaccia utente di Gitk che sarà simile alla seguente:

Initial kopiera

Il riquadro in alto a sinistra mostra i commit nel repository, con gli ultimi in alto. In basso a destra viene visualizzato l'elenco dei file interessati dal commit selezionato. Il riquadro in basso a sinistra mostra i dettagli del commit e la differenza completa. Facendo clic su un file nel riquadro in basso a destra, la differenza nel riquadro in basso a sinistra viene focalizzata sulla sezione pertinente.

Gitk rifletterà lo stato attuale del repository. Se lo stato del repository viene modificato tramite un utilizzo separato della riga di comando, ad esempio cambiando i rami, Gitk dovrà essere ricaricato. Gitk può essere ricaricato dal menu File -> Ricarica.

Database
materiale correlato

Come spostare un repository Git completo

Logo di Bitbucket
Scopri la soluzione

Impara a utilizzare Git con Bitbucket Cloud

Per impostazione predefinita, Gitk visualizzerà la cronologia corrente dei commit. Gitk ha una varietà di opzioni della riga di comando che possono essere trasmesse all'inizializzazione. Queste opzioni limitano principalmente l'elenco dei commit renderizzati alla visualizzazione principale di Gitk. La forma generale di esecuzione con queste opzioni di revisione è la seguente:

Opzioni


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

    <revision range>
  <path>…

Limita i commit a un percorso di file specifico. Per isolare i percorsi dai nomi delle revisioni, utilizza "—" per separare i percorsi da tutte le opzioni precedenti.

--all

Mostra tutti i branch, i tag, i riferimenti.

--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>

Esegue il rendering dei commit più recenti della data specificata.

    --until=<date>

Esegue il rendering dei commit più vecchi della data specificata.

    --date-order

Ordina i commit per data.

    --merge

Mostra i commit che modificano i file in conflitto identificati durante una fusione

    --left-right

Esegue il rendering di etichette informative che indicano da quale lato di una differenza proviene un commit. I commit dal lato sinistro sono preceduti da un simbolo < e quelli dal lato destro da un simbolo >.

    --ancestry-path

Quando viene assegnato un intervallo di commit da visualizzare (ad es. commit1..commit2 o commit2 commit1), visualizza solo i commit che esistono direttamente nella catena di predecessori tra commit1 e commit2, ovvero i commit che sono sia discendenti di commit1 che predecessori di commit2. (Per una spiegazione più dettagliata, consulta "Semplificazione della cronologia" in git-log (1)).

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

Potenti opzioni che ti consentono di tracciare la cronologia di un determinato intervallo di numeri di riga di codice.

Discussion & examples


    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"

Questo repository demo sarà un buon esempio da esplorare con Gitk. Questa sequenza di comandi crea un nuovo repository con 1 commit e un file index.txt. Richiamiamo ora gitk per esaminare il repository.

First commit

Can Gitk compare two commits?


Continuando con il nostro repository demo, ora creiamo un commit aggiuntivo:

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

Una volta eseguiti i comandi procedenti, sarà necessario ricaricare gitk. Ricarica gitk dalla riga di comando o usa la GUI e vai a File -> Ricarica. Una volta ricaricato, dovremmo vedere il nostro nuovo commit.

Next commit

Possiamo vedere che il riferimento del branch principale ora è puntato sul nuovo commit. Per confrontare questi due commit utilizziamo il pannello della cronologia in alto a sinistra. Nel pannello della cronologia, fai clic su un commit che sarà la base della differenza. Una volta selezionato, fai clic con il pulsante destro del mouse su un secondo commit per aprire un menu contestuale.

Commit diff

Questo menu contestuale fornirà le seguenti opzioni:

    Diff this -> selected
    Diff selected -> this

Selezionando una di queste opzioni verrà visualizzata una differenza tra i due commit nel riquadro in basso a sinistra che nel nostro esempio sarà simile a:

Diff output

L'output differenza ci mostra che a index.txt è stata aggiunta una nuova riga di "contenuti predefiniti da indicizzare" tra i due commit.

How to use Gitk to compare two branches


Continuando con il nostro repository di esempio, creiamo un nuovo branch.

    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"

La sequenza di comandi precedente creerà un nuovo branch chiamato new_branch e vi aggiungerà il file new_branch_file.txt. Inoltre, vengono aggiunti nuovi contenuti a index.txt e viene effettuato un commit aggiuntivo per quell'aggiornamento. Ora abbiamo un nuovo branch con 2 commit davanti a quello principale. Dobbiamo ricaricare Gitk per poter vedere questi cambiamenti.

New branch

Questa è un'ottima opportunità di apprendimento per parlare del meccanismo di ramificazione di Git. Gitk mostra i commit come una sequenza di commit in linea retta. Il termine branch implica che dovremmo aspettarci un «ramo» o un fork nella cronologia. I branch Git sono diversi dagli altri sistemi di controllo delle versioni. In Git, un branch è un puntatore a un commit. Il puntatore si sposta sui commit man mano che vengono creati. Quando crei un branch git, non modifichi nulla nella struttura del repository o nell'albero delle sorgenti. Stai solo creando un nuovo puntatore.

Per confrontare i commit che differiscono tra i 2 branch, Gitk deve essere lanciato con un intervallo di revisioni specificato. L'esecuzione di gitk main..new_branch aprirà Gitk con solo i commit tra i due riferimenti del branch

Compare branch

Questa è una potente utilità per confrontare i branch.

Gitk contro Git Gui


Git Gui è un'altra interfaccia utente grafica basata su Tcl/Tk per Git. Mentre Gitk si concentra sulla navigazione e sulla visualizzazione della cronologia di un repository, Git Gui si concentra sul perfezionamento dei singoli commit, sull'annotazione di singoli file e non mostra la cronologia del progetto. Git Gui fornisce anche azioni di menu per avviare Gitk per l'esplorazione della cronologia. Git Gui viene anche richiamato dalla riga di comando eseguendo git gui.

Gitk summary


In conclusione, Gitk è un wrapper di interfaccia grafica per git log. Gitk è incredibilmente potente per la visualizzazione e l'esplorazione della cronologia di un repository. Gitk è anche uno strumento utile per apprendere le nozioni interne di Git.


Condividi l'articolo
Argomento successivo

Letture consigliate

Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.

Le persone collaborano utilizzando una parete piena di strumenti

Blog di Bitbucket

Illustrazione su Devops

Percorso di apprendimento DevOps

Funzione Demo Den per demo con esperti Atlassian

Come Bitbucket Cloud funziona con Atlassian Open DevOps

Iscriviti alla nostra newsletter DevOps

Thank you for signing up