GNU/Linux >> Linux Esercitazione >  >> Linux

40 utili comandi git per amministratori e sviluppatori Linux

Git è un potente tracker di versione che consente agli sviluppatori di tenere traccia delle modifiche nel loro codice sorgente. È uno strumento ampiamente utilizzato dagli sviluppatori open source. Sebbene sia stato progettato per coordinare le attività di programmazione, Git può tenere traccia di qualsiasi insieme di file in modo efficace. Inoltre, è sviluppato da Linus Torvalds, lo stesso uomo dietro il kernel Linux. Quindi, se sei uno sviluppatore open source che aggiunge funzionalità al tuo software nel tempo o stai lavorando con più colleghi per lo sviluppo di prodotti aziendali all'avanguardia, Git può essere il sistema di tracciamento ideale per il tuo lavoro. Resta con noi per imparare alcuni dei comandi git fondamentali che semplificheranno notevolmente i tuoi cicli di sviluppo.

Comandi git pratici per sviluppatori Open Source

git CLI offre un numero considerevole di comandi git per semplificare il processo di sviluppo del software per gli sviluppatori. I nostri editori hanno delineato alcuni dei comandi più utili per la comodità dei nostri lettori. Quindi, continua a leggere e scoprili al tuo ritmo.

1. Configura profilo utente

Puoi configurare il tuo profilo git usando il comando git config. Il minimo che puoi impostare è il nome utente e l'indirizzo email. Git consente agli utenti di configurare queste politiche a livello globale o in base a un progetto. Utilizzare il comando seguente per impostare l'utente e l'indirizzo e-mail per ciascun repository.

$ git config user.name "USERNAME"
$ git config user.email "[email protected]"

Aggiungi il –globale opzione per impostare queste politiche a livello globale.

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

2. Inizializza i repository Git

Un repository git o semplicemente repository è la directory principale per i tuoi progetti open source. Contiene i file di origine, le sottodirectory per oggetti, teste e tag, tra gli altri. Puoi facilmente inizializzare un repository git usando il seguente comando.

$ git init
- -

È uno dei comandi git più comuni che utilizzerai nella tua vita. Ora puoi iniziare ad aggiungere i tuoi file di origine e armeggiare con loro come vuoi.

3. Aggiungi file di progetto

L'aggiunta di file a progetti esistenti è molto semplice utilizzando git. Puoi facilmente aggiungere tutti i file/directory modificati al sistema di tracciamento usando il comando git add. Dai una rapida occhiata all'esempio seguente per vedere come funziona.

$ git add file
$ git add *.php

Quando emetti il ​​comando git add, aggiungerà tutti i file all'indice del progetto dalla directory di lavoro corrente. È possibile specificare file particolari come fatto nel primo esempio. Il secondo esempio aggiungerà tutti i file PHP all'indice. Git li contrassegnerà per la messa in scena.

4. Verifica i file aggiunti

Puoi verificare i file che verranno messi in scena durante il prossimo commit usando il comando git status. Mostrerà tutti i nuovi file o file che sono stati modificati.

$ git status

Esegui il comando sopra ogni volta che vuoi vedere i dettagli. Verrà visualizzato un elenco riepilogativo di tutti i file che verranno organizzati nel prossimo commit.

5. Conferma le modifiche al repository

Quando esegui il commit delle modifiche, git acquisisce un'istantanea della base di codice. È così che git tiene traccia delle tue modifiche e fornisce il controllo della versione. Dovrai usare il comando git commit per questo.

$ git commit

Quando esegui il comando precedente, git ti chiederà di inserire alcune informazioni come l'aggiunta di una descrizione. Invocherà l'editor Linux predefinito che avevi impostato durante l'installazione di git. Usa il comando seguente per evitare questa indiscrezione.

$ git commit -m "First Commit"

Quindi, puoi aggiungere la descrizione direttamente se usi -m opzione.

6. Visualizza i registri

Puoi controllare i log ogni volta che vuoi vedere le modifiche che hai apportato al tuo repository. Usa semplicemente il comando git log per farlo dal terminale Linux.

$ git log
$ git log --file

Il primo esempio mostrerà informazioni generalizzate sui tuoi commit git. Utilizzare il secondo comando se si desidera visualizzare le modifiche solo in un file specifico. Puoi anche aggiungere molte altre opzioni come –log-size opzione o anche commit di ricerca utilizzando espressioni regolari.

7. Verifica le filiali del progetto

Un ramo git rappresenta una linea di sviluppo indipendente nel tuo progetto. Puoi controllare il tuo ramo corrente molto facilmente usando il comando git branch. Verrà visualizzato il ramo attualmente attivo in cui stai sviluppando nuove funzionalità o modificando quelle precedenti.

$ git branch

L'output contrassegnerà il ramo corrente utilizzando un asterisco (*).

8. Ripristina le filiali del progetto

È possibile ripristinare facilmente il repository corrente e la directory di lavoro su uno stato noto. Il comando git reset regolerà il riferimento HEAD a un commit specifico e aggiornerà l'indice per corrispondere a questo particolare commit di conseguenza.

$ git reset

Utilizzare il comando seguente per eseguire un soft reset del ramo corrente.

$ git reset --soft

Puoi anche eseguire un hard reset in modo simile. Sostituisci semplicemente –soft con il –difficile opzione, come mostrato nell'esempio seguente.

$ git reset --hard

9. Aggiungi un nuovo ramo

L'aggiunta di un nuovo ramo consente di lavorare su funzionalità più recenti in modo indipendente. Puoi facilmente aggiungere un ramo usando il comando git branch. Aggiungi semplicemente il nome del ramo, come mostrato di seguito.

$ git branch new-feature

Verifica se l'aggiunta è riuscita o meno emettendo il comando git branch. Dovrebbe visualizzare il ramo appena creato chiamato nuova funzionalità . Tuttavia, non è possibile aggiungere più di un ramo utilizzando lo stesso nome del ramo. Causerà un errore irreversibile.

10. Passa da una filiale all'altra

Puoi passare da un ramo all'altro del tuo progetto molto facilmente usando il comando checkout. È uno dei comandi git più utilizzati che utilizzerai durante lo sviluppo del software. Dai una rapida occhiata al prossimo esempio per vedere come funziona.

$ git checkout new-feature

Questo comando ti avviserà che il ramo è stato cambiato con successo. Puoi anche verificarlo usando il comando git branch mostrato in precedenza.

11. Elimina un ramo di progetto

Quando hai sviluppato nuove funzionalità con successo, vorresti che le aggiungessero al ramo git master. Una volta fatto, puoi andare e rimuovere completamente quel ramo. Il -D l'opzione del comando git ci consente di farlo molto facilmente.

$ git checkout master
$ git branch -D new-feature

Devi prima uscire dal ramo per eliminarlo correttamente. Altrimenti git genererà un errore.

12. Verifica le differenze tra commit, alberi e file

Il comando git diff ci consente di visualizzare le modifiche di due file multipli, l'albero di lavoro e l'albero degli indici, tra i commit e tra gli oggetti blob. È uno dei comandi git più fondamentali utilizzati per tenere traccia delle modifiche nelle basi di codice.

$ git diff
$ git diff new-feature master

Il primo esempio mostrerà le modifiche tra l'albero di lavoro e l'albero dell'indice. Il secondo esempio mostrerà le modifiche tra il ramo principale e il ramo della nuova funzionalità.

13. Unisci due rami

Puoi facilmente unire due diversi rami di sviluppo usando il comando git merge. Unirà due rami in un ramo unificato. Puoi usare il comando git merge per diversi scopi. Dai un'occhiata all'esempio qui sotto per vedere come possiamo usarli.

$ git merge fixes new-feature
$ git merge -s ours obsolete
$ git merge --no-commit main

Il primo esempio unisce due nuove funzionalità di ramo e corregge per creare un unico ramo. Il secondo esempio unisce il ramo obsol] al ramo di sviluppo corrente usando il nostro strategia. L'ultimo esempio unisce il branch main al branch corrente ma disabilita il commit automatico.

14. Ripristina i commit esistenti

A volte potresti decidere che alcuni dei tuoi commit non sono più necessari. In questi casi, è meglio ripristinare questi commit piuttosto che modificare del tutto il ramo. Il comando git revert ci consente di fare esattamente questo.

$ git revert ad9ef37d88ad4gfyg90aa6a23f71e775982f4b
$ git revert HEAD~3

Il primo esempio annullerà le modifiche introdotte dall'ID commit f5ad9ef37d88ad4gfyg90aa6a23f71e775982f4b . Il secondo esempio esegue la ricaduta del penultimo commit in HEAD ed esegue un nuovo commit.

15. Directory di lavoro di scorta

Puoi salvare temporaneamente lo stato corrente della tua directory di lavoro in un posto e tornarci più tardi quando vuoi. Questo è chiamato stashing nella terminologia git. Memorizza semplicemente lo stato della tua directory di lavoro e l'indice in modo che tu possa lavorare su qualcosa di nuovo.

$ git stash

Gli sviluppatori di solito usano questo comando quando si trovano in una situazione disordinata. Consente loro di memorizzare il flusso di lavoro disordinato e tornare a risolverlo in un secondo momento. Usa il comando stash list per visualizzare il tuo stash list.

$ git stash list

16. Clona un repository

Una delle cose migliori dell'open source è che puoi lavorare sul codice di altre persone come se fosse il tuo. Git semplifica il download di un progetto esistente utilizzando il comando git clone. Dai un'occhiata all'illustrazione qui sotto per vedere come funziona nella vita reale.

$ git clone <GIT:URL>
$ git clone git://example.com/git.git/ test-dir

Questo scaricherà il suddetto progetto nella test-dir directory del tuo sistema.

17. Estrai nuovi aggiornamenti

I progetti nella vita reale sono in continua evoluzione. Supponiamo di aver clonato un repository in precedenza da un repository remoto. Cosa farai quando gli sviluppatori aggiorneranno le nuove funzionalità a quel repository? È scomodo clonare lo stesso repository più e più volte nel tuo computer locale. Il comando git pull ti salva da questo.

$ git pull

Questo comando aggiornerà la versione locale del tuo progetto con le nuove modifiche apportate dai collaboratori. Ricordati di cambiare la tua directory di lavoro nella directory del progetto prima di estrarre gli ultimi aggiornamenti.

18. Spingi i tuoi aggiornamenti

Una volta che hai finito di lavorare con i tuoi aggiornamenti, puoi aggiungerli al repository remoto spingendo il file . La differenza tra git push e git commit è che quando esegui il commit di alcune modifiche, queste vengono aggiunte al tuo repository locale anziché al repository remoto.

$ git push

Questo comando aggiungerà i tuoi aggiornamenti al repository remoto del progetto. Di solito utilizzerai pull and push per collaborare con sviluppatori remoti. Quindi, è importante padroneggiarli perfettamente.

19. Visualizza repository remoti

Il comando git remote ci consente di gestire una serie di repository tracciati comodamente dal terminale Linux. Puoi usarlo per clonare solo alcuni rami selezionati.

$ git remote
$ git remote --verbose

Il primo esempio mostrerà tutti i repository remoti attualmente configurati. Aggiunta di –verbose flag ci mostra informazioni dettagliate al riguardo.

20. Collegati a repository remoti

È possibile configurare repository remoti in modo che il repository locale sia connesso a un server remoto. In questo modo, sarai in grado di inviare le modifiche locali direttamente al server remoto. Dai una rapida occhiata alla seguente illustrazione per vedere come funziona in pratica.

$ git remote add origin <server>

Il comando precedente aggiungerà "origine" come nome remoto al server. Puoi scoprire l'URL del server esplorando la Fonte sottoscheda del tuo repository GitHub.

21. Aggiungi tag al tuo progetto

I tag ti consentono di contrassegnare eventi significativi nei tuoi progetti open source. Gli sviluppatori spesso li usano per contrassegnare nuove ricadute o correzioni di bug. Dai un'occhiata da vicino ai seguenti comandi git per imparare come aggiungere tag ai tuoi progetti usando git.

$ git tag 1.0.0 <commit-id>

Questo comando aggiunge il tag 1.0.0 al commit specifico. Puoi prendere il commit-id usando il comando seguente.

$ git log

Invia il tag al tuo repository remoto utilizzando il comando seguente.

$ git push origin --tags

Devi specificare i –tag opzione in modo esplicito. Altrimenti il ​​tag verrà aggiunto solo al tuo repository locale, non al repository remoto.

22. Recupera dati remoti

Un altro comando git comune che utilizzerai spesso è fetch. È molto utile per una serie di motivi. In primo luogo, fetch recupera solo nuovi dati/riferimenti ma non li unisce alla filiale locale. Quindi, puoi essere certo che la copia di lavoro del tuo repository locale rimarrà sana e salva.

$ git fetch origin

È un modo eccellente per controllare i recenti progressi di una base di codice remota senza interrompere la propria versione del progetto. Una volta che sei certo che tutti i nuovi dati siano pronti, uniscili semplicemente alle tue filiali locali.

23. Ripristina le modifiche non vincolate

Il comando git restore consente agli sviluppatori di ripristinare eventuali modifiche non vincolate nei loro progetti. Queste sono le modifiche che hai apportato alla tua versione di lavoro del progetto o ai contenuti nel tuo indice locale. Puoi usare questo comando per ripristinare le modifiche nella tua copia di lavoro o le modifiche nell'indice o per fare entrambe le cose.

$ git restore --staged test.php
$ git restore --source=HEAD --staged --worktree test.php

Il primo comando ripristinerà il file test.php nell'indice e il secondo comando ripristinerà sia l'indice che la directory di lavoro corrente del tuo progetto.

24. Rimuovi file

A volte potresti voler rimuovere del tutto alcuni file dal tuo albero di lavoro o dall'indice del progetto. Puoi usare il comando git rm per farlo. Tuttavia, questo comando non rimuoverà i file specificati dalla directory di lavoro. Usa il comando Linux rm per farlo.

$ git rm *.php
$ git rm -r dir/
$ git rm --cached *.php

Il primo comando elimina tutti i file PHP dall'albero di lavoro e dall'indice. Il secondo comando cancella tutto dalla directory dir/. L'ultimo comando cancellerà tutti i file PHP solo dall'indice, non dall'albero di lavoro.

25. Sposta o rinomina i file

Puoi spostare o rinominare i file usando git, proprio come faresti usando il comando Linux mv. In realtà è una scorciatoia per sviluppatori impegnati incorporata direttamente in git.

$ git mv test.py new-test.py

Il comando precedente esegue semplicemente le seguenti operazioni Linux.

$ mv test.py new-test.py
$ git add new-test.py
$ rm test.py

Quindi, puoi usare il comando git mv per evitare di digitare un sacco di comandi extra del terminale Linux.

26. Pulisci i file non tracciati

I file non tracciati sono file che non sono sotto il sistema di controllo della versione git. Ti imbatterai in tali file abbastanza spesso quando lavori su progetti su larga scala. Puoi rimuoverli usando diversi metodi, inclusi git reset e git checkout. Tuttavia, usare il comando git clean è il modo più adatto per farlo.

$ git clean
fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean

Il comando precedente non è riuscito perché è così che git è configurato nel mio sistema. Puoi aggirare questo problema aggiungendo -n , -i o -f opzione.

$ git clean -n

27. Ottimizza i repository locali

Uno dei miei comandi git preferiti è gc. Viene utilizzato per la raccolta dei rifiuti e ti aiuterà a ridurre le dimensioni dei tuoi repository locali. Dovresti usare questo comando frequentemente se stai lavorando su progetti estesi.

$ git gc

Il comando git gc funziona in modo estremamente veloce e pulisce tutti i file non necessari che si trovano nel tuo repository locale. È uno dei migliori metodi di ottimizzazione grazie alla sua velocità ed efficienza. Puoi anche usare il –aggressivo opzione per aumentare l'ottimizzazione. Tuttavia, il completamento richiederà più tempo.

28. Archivia i repository locali

Puoi archiviare facilmente i tuoi repository locali usando il comando git archive. Consente agli sviluppatori di archiviare i propri progetti in un luogo sicuro. Puoi trasferire questo archivio sulla rete o archiviarlo sul file system Linux.

$ git archive --output=test --format=tar master

Il comando precedente memorizza il repository in un file tar denominato test. Puoi omettere il -formato opzione se vuoi. In questo caso, git proverà a dedurre il formato dell'archivio dal suo nome. Ci sono molte altre opzioni disponibili per questo comando.

29. Cerca Pattern

Quando lavori in progetti di grandi dimensioni, dovrai spesso cercare cose diverse. Per fortuna, il comando git grep ci consente di cercare modelli specifici nei nostri repository e rende lo sviluppo molto più semplice. Funziona in modo molto simile ai comandi grep standard di Linux, con alcune funzionalità specifiche di git.

$ git grep -iw 'import' master

Questo comando mostra tutte le righe contenenti 'import' nel nostro ramo principale. Cerca senza distinzione tra maiuscole e minuscole. Il comando seguente cercherà il modello dato in tutti i commit e rami.

$ git grep 'import' $(git rev-list --all)

Questo è uno dei migliori comandi git da padroneggiare se stai collaborando a progetti su larga scala.

30. Gestisci gli alberi di lavoro

Gli sviluppatori possono lavorare con più alberi di lavoro in git. Ciò è utile quando si estrae più di un singolo ramo del progetto. Dai un'occhiata ai seguenti comandi git per vedere come gestire gli alberi di lavoro in git.

$ git worktree list
$ git worktree add new-branch
$ git worktree remove new-branch
$ git worktree prune

È possibile visualizzare gli alberi di lavoro correnti utilizzando il primo comando. Usa il secondo comando per aggiungere un nuovo "albero di lavoro collegato" e il terzo comando per rimuovere quell'albero. Il comando finale ti consente di sfoltire le informazioni sull'albero di lavoro.

31. Elimina gli oggetti non tracciati

A volte potresti voler eliminare oggetti che non vengono più tracciati da git. Git fornisce un semplice comando per farlo. Il comando git prune cancellerà solo gli oggetti non tracciati dal database degli oggetti, non i riferimenti stessi.

$ git prune --dry-run
$ git prune --verbose --progress

Il primo comando non elimina nulla e mostrerà solo gli oggetti che la potatura rimuoverebbe. Il secondo comando fornisce un output dettagliato e un rapporto sullo stato di avanzamento durante il periodo di eliminazione. Puoi usare i comandi prune per ottimizzare i tuoi repository insieme al comando git gc.

32. Imballa gli oggetti non imballati

In git, i pacchetti sono una raccolta di oggetti compressi individualmente. Git applica la compressione delta su questi oggetti e li archivia in un unico file. Sono usati per ridurre il carico sul filesystem Linux o sui sistemi mirror. Il comando git repack consente agli utenti di creare nuovi pacchetti costituiti da oggetti che non si trovano all'interno di pacchetti esistenti.

$ git repack

Puoi usare questo comando insieme a gic gc e git prune per ottimizzare i tuoi repository git.

33. Elenca oggetti decompressi

Non dovresti reimballare i tuoi oggetti molto frequentemente a meno che non ci siano troppi oggetti decompressi. Il comando git count-objects è un metodo semplice ma utile per visualizzare il numero di oggetti decompressi e quanto spazio su disco consumano.

$ git count-objects

Usa il comando sopra per determinare se è il momento di reimballare git o meno. Puoi aggiungere il –verbose flag per ottenere informazioni dettagliate e il –leggibile dall'uomo flag per visualizzare la dimensione in modo convenzionale.

34. Convalida il database degli oggetti

Git è stato sviluppato come filesystem nei suoi primi giorni. Ha un utile comando chiamato fsck, che agisce in modo molto simile a Unix fsck. Puoi utilizzare questo comando per verificare la connettività ed eseguire controlli di integrità per i tuoi oggetti.

$ git fsck

L'esecuzione del comando precedente visualizzerà tutti gli oggetti danneggiati trovati nel database degli oggetti. È uno dei comandi git più utili per trovare oggetti mancanti o danneggiati.

35. Visualizza le modifiche per ogni impegno

Il comando git whatchanged è un altro dei nostri sottocomandi git preferiti. È un modo semplice ma efficace per visualizzare i cambiamenti che ogni singolo commit git introduce nel nostro progetto.

$ git whatchanged

Questo comando git visualizzerà le informazioni utilizzando i log di commit e l'output diff. Nel complesso, è abbastanza simile nel funzionamento al comando git log.

36. Riepiloga le informazioni di registro

Puoi anche usare il comando git shortlog per visualizzare le cronologie. L'idea principale alla base di questo comando è includere l'output negli annunci di rilascio. Dai una rapida occhiata al comando seguente per vedere come funziona.

$ git shortlog
$ git shortlog --email --summary

Aggiunta dell'–email l'opzione visualizzerà le email di ciascun autore. Il –riepilogo l'opzione sopprimerà il normale output e mostrerà solo il numero di commit.

37. Gestisci le opzioni di configurazione

Ci sono un numero enorme di opzioni di configurazione disponibili per git. Puoi usare il comando git config per interrogare, impostare o sostituire varie opzioni. È possibile apportare modifiche sia a repository specifici che alla configurazione globale.

$ git config --list

Il comando precedente elencherà tutte le opzioni di configurazione attualmente impostate in git. Puoi facilmente aggiungere o rimuovere nuove opzioni. Segui la pagina della guida del sottocomando config per sapere come eseguire queste attività.

$ git config --help

38. Consulta la Guida di Git

La pagina della guida di git o qualsiasi altro comando del terminale Linux fornisce informazioni riepilogative di tutte le opzioni disponibili. Dovrebbe essere il primo posto da visitare quando incontri problemi con git. Dai una rapida occhiata ai seguenti comandi per sapere come invocare la pagina della guida di git.

$ git help
$ git --help

Quindi, puoi consultare la pagina della guida di git utilizzando il –help in stile Unix opzione o il sottocomando help integrato in git. Inoltre, git fornisce anche pagine di aiuto per i sottocomandi.

$ git <command> --help
$ git commit --help

39. Consulta la pagina del manuale

La pagina man contiene informazioni approfondite sul sistema di controllo della versione git e tutti i suoi sottocomandi. Puoi visualizzarli seguendo la sintassi seguente.

$ man git
$ man git commit

Quindi, puoi anche visualizzare i manuali per i singoli sottocomandi come puoi con la pagina della guida.

40. Visualizza le informazioni sulla versione

Puoi usare il seguente semplice comando per vedere quale versione di git è installata sul tuo sistema. Poiché git si è evoluto in gran parte nel tempo, ci sono differenze significative tra le varie versioni di git.

$ git --version

Usa semplicemente il comando sopra per ottenere la versione specifica di git disponibile sul tuo computer.

Pensieri finali

Git ha consolidato la sua posizione come sistema di controllo della versione de facto grazie al suo design pratico e al set di funzionalità diverse. Sebbene ci siano alcune ottime alternative come Mercurial e CVS, un gran numero di pratici comandi git lo rendono più versatile dei suoi concorrenti. I nostri redattori hanno fatto di tutto per delineare i comandi più pratici per te. Si spera che tu abbia ottenuto le informazioni essenziali che stavi cercando da questa guida. Sentiti libero di farci domande se hai dubbi su un comando particolare. Grazie per essere stato con noi durante questa lunga guida.


Linux
  1. 16 Comandi Tar per comprimere ed estrarre file in Linux

  2. Linux per principianti:altri 10 comandi per manipolare i file

  3. 3 utili comandi Linux per gli amministratori di sistema

  4. Comandi di ricerca di Linux

  5. Usa Trova e trova per cercare file in Linux

50 regole utili e semplici di IPtables per l'amministratore Linux

50 semplici e utili comandi dmidecode per Linux

25 Devi conoscere i comandi di Nginx per sviluppatori e amministratori

I 40 comandi utili del server Linux per principianti e professionisti

I 50 comandi IP utili di Linux per gli amministratori di rete

Le 5 migliori distribuzioni Linux per sviluppatori e programmatori