python confronta due file

Il comando git diff mostra le differenze tra i file in due commit o tra il tuo repository attuale e un commit precedente. Questo comando visualizza le modifiche denotate da intestazioni e metadati per i file che sono stati modificati.

Quando lavori con il sistema di controllo della versione di Git, potresti voler confrontare i dati nel tuo repository con un altro fonte di dati. Ad esempio, potresti voler confrontare due commit diversi tra loro o due file.

Ecco dove entra in gioco la funzione diff. Diffing è una funzione che accetta due input e presenta le modifiche esistenti tra quelle fonti di dati. Le funzioni diff possono essere eseguite su branch, file e commit.

Questo tutorial discuterà, con esempi, le basi del diffing con Git e come usare il comando git diff. Alla fine della lettura di questo tutorial, sarai un esperto nell’uso del comando git diff.

Comando Git Diff

Il comando git diff mostra le differenze tra i file in due commit o tra un commit e il tuo attuale repository. Puoi vedere quale testo è stato aggiunto, rimosso e modificato in un file.

Ecco la sintassi per il comando git diff:

Per impostazione predefinita, il comando git diff mostra tutte le modifiche non salvate al tuo repository.

Possiamo vedere le righe rimosse dal nostro file originale cosi come tutte le righe aggiunte o modificate nel nostro file originale. Spesso, Git diff viene utilizzato per confrontare i rami in un repository Git.

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

Puoi confrontare i file tra due Git commit specificando il nome del riferimento che si riferisce ai commit che vuoi confrontare. Un riferimento può essere un ID commit o HEAD, che fa riferimento al ramo corrente.

Confrontiamo due commit nel nostro repository Git.

Per farlo, devi prima recuperare l’ID dei commit di cui hai vuole confrontare. Puoi eseguire questa attività utilizzando il comando git log ‚Äìpretty=oneline, che restituisce un breve riepilogo di tutti i commit in un repository:

Questo comando restituisce:

Git Diff Between Branches

Per confrontare due Git branch utilizzando il comando diff, specifica i due rami che vuoi confrontare come argomenti. Devi usare due punti tra ogni nome di ramo. Questi punti indicano che vuoi leggere l’ultimo commit in ciascuno dei rami e confrontarli:

Supponiamo di volevo confrontare il ramo "master" con un ramo chiamato "dev-v0.9" nel nostro repository. Potremmo farlo usando questo comando:

Quando questo comando viene eseguito, verrà eseguito un diff tra "master" e " dev-v0.9" nel nostro codebase.

Analogamente, puoi confrontare file specifici in due rami diversi. quindi, puoi usare la stessa sintassi di cui sopra e inoltre specificare il file che vuoi confrontare.

Supponiamo di voler confrontare il file README.md con il nostro "master" e "dev-v0.9" rami. Potremmo farlo usando questo codice:

Questo confronterà il file README.md (che si trova nella nostra directory corrente, indicata dalla sintassi "./") attraverso il file "master" e "dev-v0.9" branch.

Esempio di comando Git Diff

Supponiamo di aver inizializzato un repository vuoto e di voler avviare il nostro repository con un file README.md. Abbiamo creato un file README.md nel nostro repository che contiene la seguente frase:

Questo è un esempio della funzione Git diff.

Prepara file e commit

Creeremo un commit con questo file usando il comando git commit:

Questo ci permette di salvare le modifiche che abbiamo apportato al nostro repository. Il comando git restituisce:

Se eseguiamo il comando git diff in questa fase, non accadrà nulla. Questo perché il nostro repository è stato inizializzato e non ci sono modifiche tra i file nel nostro repository. Ora che abbiamo un repository di base, possiamo modificare il contenuto dei file nel nostro repository. Questo ci permetterà di vedere il comando git diff in azione.

Supponiamo di voler aggiungere la frase "Abbiamo appena aggiunto questa riga al nostro file." nel file README.md. Potremmo farlo usando questo comando:

"Carriera Karma è entrato nella mia vita quando ne avevo più bisogno e mi ha aiutato rapidamente ad abbinarmi a un bootcamp. Due mesi dopo la laurea, ho trovato il lavoro dei miei sogni in linea con i miei valori e obiettivi nella vita!"

Venus, Software Engineer presso Rockbot

Il comando sopra aggiunge la nostra frase al file README.md.

Ciò significa che ora c’è una differenza tra il nostro file README.md iniziale e il file README.md corrente nel nostro repository.

Eseguendo il comando git diff, possiamo vedere le differenze tra questi due file. Per impostazione predefinita, il comando git diff produce una differenza per tutti i file tra l’ultimo commit e lo stato corrente del repository.

Esegui una differenza tra i commit di Git

Quando eseguiamo il comando, viene restituita la seguente risposta:

Questo è un esempio della funzione Git diff.

Questo è un tipico risultato del comando git diff. Il nostro risultato mostra cosa è stato aggiunto o rimosso in il nostro file in un formato diff combinato.

Il comando git diff restituisce un elenco di tutte le modifiche in tutti i file tra il nostro ultimo commit e il nostro repository corrente.

Se lo desideri recuperare le modifiche apportate a un file specifico in un repository, è possibile specificare quel file come terzo parametro. Supponiamo di voler vedere solo le modifiche apportate al file README.md.

In questo esempio, abbiamo modificato solo il file README.md, quindi solo quelle modifiche verrebbero comunque mostrate. Ma se stessimo lavorando con un repository più grande, potremmo voler confrontare solo le modifiche in un file. Per farlo, potremmo usare questo comando:

Questo comando ci permette di confrontare la nostra versione attuale del file README.md con l’ultima versione impegnata nel nostro repository.

Git Diff Breakdown

Git diffs presenta un numero di componenti che possiamo utilizzare per analizzare le modifiche tra un file in un repository. Analizziamoli, facendo riferimento al nostro esempio precedente.

File di input

Il primo componente della nostra differenza sono i file di input. Questa parte del diff ci dice quali file vengono confrontati nel diff.

Stiamo confrontando il file README.md nella versione corrente del nostro codice con il file README.md nell’ultima versione del nostro codice. Questo è indicato nella prima riga del nostro codice:

Metadati

Successivamente, il nostro diff contiene i metadati per il nostro repository Git. Questi metadati mostrano le etichette della versione dell’oggetto utilizzate da Git per tenere traccia delle modifiche apportate a un file.

Queste informazioni sono usate raramente nella maggior parte dei casi del comando diff. Nel nostro esempio sopra, i metadati hanno questo aspetto:

Change Markers

La parte successiva dell’output di Git diff è marcatori di modifica. Questi marcatori di pattern di file ci dicono che tipo di modifiche sono state apportate ai nostri file. I marcatori di modifica per il nostro esempio sopra sono:

Questi marcatori ci dicono che cambia da a/README.md sono state apportate (indicate dai segni meno), che si riflettono in b/README.md (indicato dai segni più).

Modifiche al codice

Infine, il nostro diff restituisce un elenco delle modifiche apportate al nostro codice. A differenza di un confronto completo di file, le differenze mostrano solo le sezioni di un file che sono state modificate. Nel nostro esempio, abbiamo aggiunto una riga al nostro file, che ha restituito il seguente risultato:

La prima riga è un riepilogo delle modifiche apportate al nostro file. Questo ci dice che abbiamo aggiunto una riga di codice al nostro file (+1) a partire dalla seconda riga (2).

Quindi, ci viene mostrato un elenco delle modifiche apportate. Come puoi vedere, poiché abbiamo aggiunto la riga "Abbiamo appena aggiunto questa riga al nostro file.", quella riga appare nel nostro diff. Il segno più ci dice che abbiamo aggiunto quella riga al file.

Conclusione

Diffing è una funzione utile in Git che ti permette di confrontare due file, branch o commit in un Archivio Git. Questo ti permette di vedere quali modifiche sono state fatte da un certo punto nel tuo repository.

Questo tutorial ha discusso le basi del diffing con Git e come usare il comando git diff per eseguire un’operazione diff. Ora sei dotato delle conoscenze necessarie per iniziare a utilizzare il comando git diff come un esperto!

Per ulteriori risorse di apprendimento su Git, dai un’occhiata al nostro Guida all’apprendimento di Git.