GNU/Linux >> Linux Esercitazione >  >> Linux

Impara i comandi Git con esempi pratici su Linux - Parte 1

Git è un sistema di controllo della versione distribuito. Viene utilizzato principalmente dagli sviluppatori di software per la gestione del codice sorgente. Git è un software gratuito e open source e molte grandi organizzazioni lo utilizzano per gestire la loro enorme base di codice.

In questo tutorial acquisiremo familiarità con Git. Questa sarà una guida pratica. Questo tutorial presuppone che Git sia installato sul tuo sistema.

Git configurazione iniziale utente

Per prima cosa dobbiamo configurare le impostazioni per l'utente Git. Possiamo effettuare queste impostazioni per tutti i repository presenti sul sistema corrente o per un repository particolare. Cerchiamo di capirlo con un esempio:

Identità utente

In Git possiamo specificare l'identità dell'utente fornendo il suo nome e indirizzo e-mail. Queste informazioni verranno utilizzate durante ogni operazione di commit. Esegui il comando seguente nel terminale per assegnare l'identità:

$ git config --global user.name "Linuxtechi User"
$ git config --global user.email "[email protected]"

Editor

Questa impostazione configura l'editor, che verrà utilizzato durante la fornitura del messaggio di commit:

$ git config --global core.editor vim

Compressione

Questa impostazione configura il livello di compressione da utilizzare. L'intervallo valido per la compressione è compreso tra -1 e 9. Il valore -1 indica la compressione zlib ed è il livello di compressione predefinito. Il valore 0 significa nessuna compressione e da 1 a 9 sono vari compromessi velocità/dimensione, 9 è il più lento.

$ git config --global core.compression 2

Strumento differenziale

Questa impostazione configura lo strumento di visualizzazione delle differenze. Ad esempio, il comando seguente configura vimdiff come strumento diff:

$ git config --global diff.tool vimdiff

Nei comandi precedenti abbiamo usato –global opzione ovunque, che renderà questa configurazione globale. Significa che la stessa configurazione verrà applicata a tutti i repository presenti sul sistema corrente. Per rendere specifico il repository di configurazione, rimuovi l'opzione –global.

Configurazione elenco

Per elencare la configurazione di Git, esegui il comando seguente nel terminale:

$ git config -l

Questo comando genererà il seguente output:

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.editor=vim
core.compression=2
user.name=Linuxtechi User
[email protected]
diff.tool=vimdiff

Repository Git

Il repository è una posizione in cui è archiviato il codice sorgente. Possiamo creare un nuovo repository o utilizzare un repository esistente. Per creare un nuovo repository vuoto, esegui il comando seguente:

$ mkdir my-repo.git
$ cd my-repo.git
$ git init --bare
Initialized empty Git repository in my-repo.git

Questo metodo sarà utile quando inizi con un nuovo progetto. Un altro metodo consiste nell'utilizzare il repository esistente. Tale repository è ospitato su un server remoto come GitHub. Per scaricare il repository remoto usa il comando clone come segue:

$ git clone https://github.com/linuxtechiuser/my-repo.git

Nel comando precedente l'ultimo argomento è il percorso del repository remoto.

Flusso di lavoro Git

In questa sezione parleremo del flusso di lavoro git.

Introduci nuove modifiche

Il primo passo è introdurre nuove modifiche. Può essere l'aggiunta di un nuovo file o l'aggiornamento di file esistenti. Creiamo un nuovo file e modifichiamo il file esistente

$ touch AUTHORS                                  # Create new file
$ echo "New Contents" >> README                  # Update existing file

Controlla lo stato del repository

Git è un sistema di tracciamento dei contenuti, identificherà sopra due modifiche. Controlliamo lo stato del repository:

$ git status -s
 M README
?? AUTHORS

Nell'output sopra la lettera M appare prima di README che indica che il file esistente è stato modificato. Invece ?? appare prima di AUTHORS che indica che si tratta di un nuovo file e Git non ne è a conoscenza, quindi tale file viene chiamato file non tracciato.

Aggiungi file al changeset

Diciamo a Git di tenere traccia di questo nuovo file. Possiamo raggiungere questo obiettivo usando il comando add. Questa operazione inizierà a tenere traccia delle modifiche apportate a questo file.

$ git add AUTHORS

Controlliamo ora lo stato del repository:

$ git status -s
A  AUTHORS
M README

L'output sopra mostra A prima di AUTORI che indica che questo file è stato appena aggiunto in Git. Possiamo aggiungere un numero qualsiasi di file usando questo comando.

Rimuovi il file dal changeset

Diciamo a Git di annullare la traccia di questo file appena aggiunto. Possiamo raggiungere questo obiettivo usando il comando di ripristino. Questa operazione rimuoverà il file dal changeset

$ git reset AUTHORS
$ git status -s
 M README
?? AUTHORS

L'output sopra mostra che il file AUTHORS non è tracciato da Git.

Imposta modifiche

In Git, i file che fanno parte di changeset formeranno un commit. Ogni commit riceverà un ID univoco. Creiamo prima il changeset

$ git add AUTHORS
$ git add README

Ora eseguiamo il commit delle modifiche al repository locale con il messaggio di commit. Nel comando sottostante -m argomento indica il messaggio di commit.

$ git commit -m "Updated README and added AUTHORS"

Quando esegui il comando sopra, genererà il seguente output:

[master 0b124eb] Updated README and added AUTHORS
 2 files changed, 1 insertion(+)
 create mode 100644 AUTHORS

Esamina le modifiche

In questa sezione parleremo dei comandi che ci permetteranno di rivedere le modifiche al repository.

Visualizza registro commit

Il repository può contenere più commit di più autori. Possiamo usare il comando log per visualizzare tutti i commit disponibili:

$ git log

Quando esegui il comando sopra, genererà il seguente output:

commit 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:06:55 2018 +0530

    Updated README and added AUTHORS

Questo è il commit che avevamo creato in precedenza. Nel comando sopra:

  • L'ID esadecimale rappresenta un ID commit
  • La sezione Autore del commit mostra i dettagli su chi ha apportato queste modifiche
  • La sezione Data mostra la data e il timestamp del commit

Visualizza un breve registro dei commit

Il comando sopra mostrerà informazioni dettagliate su ogni commit. Per visualizzare una breve descrizione di ogni commit, utilizzare l'opzione –oneline come segue:

$ git log --oneline

Quando esegui il comando sopra, genererà il seguente output:

0b124eb (HEAD -> master) Updated README and added AUTHORS

Visualizza commit

L'ID commit è associato a ogni changeset. Possiamo usare questo ID con il comando show per visualizzare i contenuti del commit.

$ git show 0b124eb6d0109d837f6f9396c9937406abd3f456

Quando esegui il comando sopra, genererà il seguente output:

commit 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:06:55 2018 +0530
    Updated README and added AUTHORS
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..e69de29
diff --git a/README b/README
index 980a0d5..5680123 100644
--- a/README
+++ b/README
@@ -1 +1,2 @@
 Hello World!
+New Contents

Visualizza differenze

Il comando Diff ci consente di rivedere le modifiche prima di creare il changeset. Il comando Diff mostra le differenze tra repository e spazio di lavoro locale. Modifichiamo il file README e vediamo le differenze

$ echo "Generating diff" >> README
$ git diff
diff --git a/README b/README
index 5680123..3158230 100644
--- a/README
+++ b/README
@@ -1,2 +1,3 @@
 Hello World!
 New Contents
+Generating diff

Nel comando sopra:

  • Il segno + indica le modifiche che vengono aggiunte al file
  • – il segno indica le modifiche che vengono rimosse dal file

Lavorare con repository remoti

Finora stavamo lavorando solo con il repository locale. Altri sviluppatori non possono utilizzare le modifiche apportate da noi poiché sono locali. Quindi la collaborazione del codice non è possibile. Questa sezione descriverà i comandi che ci permetteranno di interagire con repository remoti

Pubblica le modifiche nel repository remoto

Possiamo pubblicare le modifiche locali nel repository remoto in modo che altri sviluppatori possano usarlo. Prima di pubblicare le modifiche dobbiamo creare changeset e commit locale. Possiamo pubblicare le modifiche utilizzando il comando push come segue:

$ git push

Questo comando copia le modifiche dall'area di lavoro locale al repository remoto. In Git, questa operazione viene definita operazione push.

Sincronizza l'area di lavoro con il repository remoto

Molti sviluppatori possono pubblicare le modifiche dell'area di lavoro nel repository remoto. Git ci consente di scaricare tali modifiche e sincronizzare l'area di lavoro con il repository. Possiamo ottenerlo usando il comando pull:

$ git pull

In Git, questa operazione viene definita operazione pull.

Comandi Git vari

Questa sezione discute vari comandi Git che saranno utili per eseguire attività quotidiane:

Modifica ultimo commit

Git ci consente di modificare l'ultimo commit. Possiamo usare questo metodo per evitare la creazione di nuovi commit. Viene utilizzato principalmente per modificare il messaggio di commit precedente. Per modificare l'ultimo commit, usa –amend opzione come segue:

$ echo "Yet another new change" >> README
$ git add README
$ git commit --amend -m "This is amended commit

Ora controlliamo il log dei commit:

$ git log
commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:54:55 2018 +0530

    This is amended commit

Se osservi attentamente l'output sopra, possiamo vedere il nuovo messaggio di commit, il suo ID e il nuovo timestamp.

Rimuovi i file non tracciati

I file non tracciati sono quelli sconosciuti a Git. Possiamo rimuovere tutti i file non tracciati usando il comando clean.

Creiamo alcuni file non tracciati:

$ touch delete-me-1 delete-me-2 delete-me-3

Per rimuovere tutto il file non tracciato sopra, usa il comando clean con -f opzione come segue:

$ git clean -f
Removing delete-me-1
Removing delete-me-2
Removing delete-me-3

Tieni presente che questo comando rimuoverà i file in modo permanente, quindi utilizzalo con cautela.

Visualizza i commit di un determinato autore

Se utilizziamo il comando log, mostra i commit di tutti gli autori. Per visualizzare i commit di un particolare autore, usa –author flag come segue:

$ git log --author=Linuxtechi

Quando esegui il comando sopra, elencherà tutti i commit degli autori di Linuxtechi come segue:

commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:54:55 2018 +0530

    This is amended commit

Visualizza la cronologia di ogni file riga per riga

Per visualizzare la cronologia riga per riga possiamo usare il comando di colpa.

$ git blame README

Quando esegui il comando sopra, genererà il seguente output:

76294131 (Linuxtechi User         2018-07-27 21:12:11 -0700 1) Hello World!
8bf67aec (Linuxtechi User         2018-07-27 21:54:55 +0530 2) New changes
8bf67aec (Linuxtechi User         2018-07-27 21:54:55 +0530 3) Yet another changes

Nel comando sopra:

  • La prima colonna indica l'ID commit
  • La seconda colonna indica l'autore
  • La terza colonna indica i timestamp
  • L'ultima colonna indica il numero di riga e il contenuto del file

Visualizza differenze dall'area di sosta

Quando crei changeset usando il comando aggiungi, il file viene spostato logicamente nell'area di staging. Vediamo con questo esempio:

$ echo "Let us demonstrate staging area" >> README
$ git add README
$ git diff

Il comando sopra non mostrerà alcuna differenza poiché il file viene spostato nell'area di gestione temporanea. Usiamo l'operazione a fasi per visualizzare le differenze:

$ git diff --staged
diff --git a/README b/README
index 74729a2..8bc5ffd 100644
--- a/README
+++ b/README
@@ -1,3 +1,4 @@
 Hello World!
 New changes
 Yet another changes
+Let us demonstrate staging area

Conclusione

In questo tutorial abbiamo discusso le operazioni di base di Git con semplici esempi. Questo tutorial è un buon punto di partenza per i neofiti di Git.

Ulteriori informazioni : Impara il comando Git con esempi pratici su Linux - Parte 2


Linux
  1. Come utilizzare il comando Hexdump di Linux con esempi pratici

  2. Comandi Head and Tail in Linux spiegati con esempi

  3. Oltre 10 comandi VI Linux con esempi

  4. Comando JQ in Linux con esempi

  5. Comando Linux rsync con esempi pratici

15 Comando Linux ps con esempi

Comando Trova Linux con esempi pratici

Comandi Nmap con esempi

Comandi RPM in Linux con esempi

Comandi SSH in Linux con esempi di utilizzo

Wait Command in Linux spiegato con esempi pratici