Close

Git Status: ispezione di un repository


git status


Il comando git status visualizza lo stato della directory di lavoro e l'area di staging. Ti permette di vedere quali modifiche sono state sottoposte a staging, quali no e quali file non vengono tracciati da Git. L'output dello stato non mostra alcuna informazione sulla cronologia del progetto sottoposto a commit. Per questo, devi usare git log.

Comandi git correlati

  • git tag
    • I tag sono riferimenti che rimandano a punti specifici nella cronologia Git. Il tag Git viene generalmente utilizzato per acquisire un punto cronologico che viene impiegato per una versione contrassegnata (ad esempio, v1.0.1).
  • git blame
    • La funzione di alto livello di git blame è la visualizzazione dei metadati dell'autore allegati a specifiche righe confermate in un file. Viene utilizzato per esplorare la cronologia di un codice specifico e rispondere a domande su cosa, come e perché il codice è stato aggiunto a un repository.
  • Git log
    • Il comando git log mostra le istantanee confermate. Il comando git log ti consente di elencare la cronologia del progetto, filtrarla e cercare modifiche specifiche.
Logo Git
materiale correlato

Scheda di riferimento rapido di Git

Logo di Bitbucket
Scopri la soluzione

Impara a utilizzare Git con Bitbucket Cloud

Utilizzo

git status

Elenco dei file in fase di staging, non archiviati e non tracciati.

Discussione

Il comando git status è un comando relativamente semplice. Ti mostra semplicemente cosa sta succedendo con git add e git commit. I messaggi di stato includono anche istruzioni pertinenti per i file di staging/destaging. Di seguito è riportato un esempio di output che mostra le tre categorie principali di una chiamata di git status:

# On branch main
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
#modified: hello.py
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
#modified: main.py
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
#hello.pyc

Ignorare i file

I file non tracciati in genere rientrano in due categorie. Sono file che sono appena stati aggiunti al progetto e non sono ancora stati salvati, oppure sono file binari compilati come .pyc, .obj, .exe, ecc. Sebbene sia sicuramente utile includere il primo nell'output di git status, il secondo può rendere difficile vedere cosa sta effettivamente succedendo nel tuo repository.

Per questo motivo, Git ti consente di ignorare completamente i file inserendo i percorsi in un file speciale chiamato .gitignore. Tutti i file che desideri ignorare devono essere inclusi in una riga separata e il simbolo * può essere usato come jolly. Ad esempio, aggiungendo quanto segue a un file .gitignore il file nella cartella principale del tuo progetto impedirà ai moduli Python compilati di apparire in git status:

*.pyc

Esempio

È buona norma controllare lo stato del tuo repository prima di apportare modifiche in modo da non eseguire accidentalmente il commit di qualcosa che non intendi fare. Questo esempio mostra lo stato del repository prima e dopo lo staging e il salvataggio di un'istantanea:

# Edit hello.py
git status
# hello.py is listed under "Changes not staged for commit"
git add hello.py
git status
# hello.py is listed under "Changes to be committed"
git commit
git status
# nothing to commit (working directory clean)

The first status output will show the file as unstaged. The git add action will be reflected in the second git status, and the final status output will tell you that there is nothing to commit—the working directory matches the most recent commit. Some Git commands (e.g., git merge) require the working directory to be clean so that you don't accidentally overwrite changes.

Git log


Il comando git log mostra le istantanee confermate. Il comando git log ti consente di elencare la cronologia del progetto, filtrarla e cercare modifiche specifiche. Mentre git status ti consente di esaminare la directory di lavoro e l'area di gestione, git log funziona solo sulla cronologia del commit.

Git status vs git log

L'output del registro può essere personalizzato in diversi modi, dal semplice filtraggio dei commit alla loro visualizzazione in un formato completamente definito dall'utente. Alcune delle configurazioni più comuni di git log sono presentate di seguito.

Utilizzo

git log

Visualizza l'intera cronologia dei commit utilizzando la formattazione predefinita. Se l'output occupa più di una schermata, puoi usare la barra spaziatrice per scorrere e q per uscire.

git log -n <limit>

Limita il numero di commit per . Ad esempio, git log -n 3 mostrerà solo 3 commit.

Riduci ogni commit a un'unica riga. Questo è molto utile per avere una panoramica generale sul tuo progetto.

git log --oneline
git log --stat

Oltre alle normali informazioni di git log, includi quali file sono stati modificati e il numero relativo di righe che sono state aggiunte o eliminate da ciascuno di essi.

git log -p

Visualizza la patch che rappresenta ogni commit. Mostra la differenza completa di ogni commit, che è la visualizzazione più dettagliata che puoi avere della cronologia del tuo progetto.

git log --author="<pattern>"

Search for commits by a particular author. The <pattern> argument can be a plain string or a regular expression.

git log --grep="<pattern>"

Search for commits with a commit message that matches <pattern>, which can be a plain string or a regular expression.

git log <since>..<until>
git log <file>

Visualizza solo i commit che includono il file specificato. Questo è un modo semplice per visualizzare la cronologia di un determinato file.

git log --graph --decorate --oneline

Alcune opzioni utili da considerare. Il flag —graph che disegnerà un grafico testuale dei commit sul lato sinistro dei messaggi di commit. —decorate aggiunge i nomi dei branch o dei tag dei commit mostrati. —oneline mostra le informazioni sui commit su un'unica riga, semplificando la navigazione tra i commit a colpo d'occhio.

Discussione

5. Controlla lo stato del file.

commit 3157ee3718e180a9476bf2e5cab8e3f1e78a73b7
Author: John Smith

La maggior parte di questo è piuttosto semplice; tuttavia, la prima riga merita qualche spiegazione. La stringa di 40 caratteri dopo il commit è un checksum SHA-1 del contenuto del commit. Questo ha due scopi. Innanzitutto, garantisce l'integrità del commit: se mai fosse danneggiato, il commit genererebbe un checksum diverso. In secondo luogo, funge da ID univoco per il commit.

Questo ID può essere utilizzato in comandi come git log .. per fare riferimento a commit specifici. Ad esempio, git log 3157e.. 5ab91 mostrerà tutto ciò che è compreso tra i commit con ID 3157e e 5ab91. Oltre ai checksum, i nomi dei branch (discussi nel Modulo Branch) e la parola chiave HEAD sono altri metodi comuni per fare riferimento ai singoli commit. HEAD si riferisce sempre al commit corrente, che si tratti di un branch o di un commit specifico.

Il carattere ~ è utile per creare riferimenti relativi all'elemento padre di un commit. Ad esempio, 3157e~1 si riferisce al commit prima di 3157e e HEAD~3 è l'elemento superiore di tre livelli del commit corrente.

Esempio

La sezione Utilizzo fornisce molti esempi di git log, ma tieni presente che diverse opzioni possono essere combinate in un unico comando:

git log --author="John Smith" -p hello.py

Verrà visualizzata una differenza completa di tutte le modifiche apportate da John Smith al file hello.py.

La sintassi ... è uno strumento molto utile per confrontare i branch. Il prossimo esempio mostra una breve panoramica di tutti i commit presenti in alcune funzionalità che non sono nella sezione principale.

git log --oneline main..some-feature

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