Nell'articolo precedente abbiamo appreso il flusso di lavoro di base di Git. In questo articolo ci concentreremo su alcune funzionalità avanzate come varie azioni del repository, branching e tagging. Come l'articolo precedente, anche questa è una guida pratica a Git.
Varie azioni sul repository
Rinomina
Come suggerisce il nome, l'operazione di ridenominazione indica a Git che il file tracciato è stato modificato. Per rinominare il file eseguire il seguente comando:
$ git mv README NEW-README
Ora controlliamo lo stato del repository:
$ git status -s R README -> NEW-README
Nella lettera di output sopra R appare prima di README, che indica che il file è stato rinominato. La colonna successiva mostra il vecchio e il nuovo nome del file.
NOTA: Per apportare queste modifiche nel repository remoto, esegui il comando git push.
Sposta
L'operazione di spostamento viene utilizzata per spostare il file da una posizione di directory a un'altra. Per spostare il file eseguire il seguente comando:
$ mkdir new-dir $ git mv README new-dir/
In questo esempio, abbiamo creato una nuova directory e spostato il file in quella directory. Ora controlliamo lo stato del repository:
$ git status -s R README -> new-dir/README
L'output sopra mostra che il file è stato spostato in una nuova directory.
NOTA: Per apportare queste modifiche nel repository remoto, esegui il comando git push.
Elimina
Come suggerisce il nome, l'operazione di eliminazione rimuove file/directory da Git. Per rimuovere il file eseguire il seguente comando:
$ git rm README
Ora controlliamo lo stato del repository:
$ git status -s D README
Nell'output sopra la lettera D appare prima del README che indica che il file è stato rimosso dal repository.
NOTA: Per apportare queste modifiche nel repository remoto, esegui il comando git push.
REIMPOSTA
Questa operazione ripristina l'HEAD corrente allo stato specificato. In Git, HEAD è il puntatore di riferimento che punta all'ultimo commit.
Cerchiamo di capirlo con un esempio:
$ touch AUTHORS $ git add AUTHORS $ git status -s A AUTHORS
Nell'esempio sopra, abbiamo creato il file AUTHORS e lo abbiamo aggiunto a changeset. Ora questo file farà parte del prossimo commit. Il comando Git reset regolerà il riferimento HEAD e rimuoverà il file dal changeset
$ git reset HEAD AUTHORS
Ora controlliamo lo stato del repository:
$ git status -s ?? AUTHORS
Come previsto, l'output sopra mostra che il file è stato rimosso dal changeset quindi ?? il simbolo appare prima del nome del file.
Lavorare con le filiali
Il ramo nel sistema di controllo della versione è una linea di sviluppo indipendente. A differenza di altri sistemi di controllo della versione, il branching è davvero leggero in Git. In questa sezione parleremo di varie funzionalità relative al ramo.
Crea filiale
Per creare un nuovo ramo esegui il seguente comando:
$ git branch my-feature-branch
Nel comando precedente my-feature-branch è il nome del ramo. Questo comando creerà un ramo locale.
Per creare un ramo remoto, esegui il comando git push come segue:
$ git push origin my-feature-branch
Ramo elenco
Per elencare branch esegui il comando branch senza alcun argomento.
$ git branch * master my-feature-branch
Ad esempio, l'output sopra elenca le filiali locali. Il simbolo dell'asterisco rappresenta il ramo corrente. Nel nostro caso è il ramo principale.
Per elencare i rami locali e remoti eseguire il seguente comando:
$ git branch -a * master my-feature-branch remotes/origin/HEAD -> origin/master remotes/origin/master
Nell'output sopra, i rami evidenziati in rosso sono rami remoti.
Elimina ramo
Per eliminare il ramo locale, utilizzare l'opzione -d come segue:
$ git branch -d my-feature-branch
Ramo eliminato my-feature-branch (era 220bf4d).
Per eliminare il ramo remoto eseguire il seguente comando:
$ git push origin :my-feature-branch
Nota che abbiamo use colon() con il nome del ramo che indica a git di eliminare il ramo remoto
Cambia filiale
Per passare da un ramo all'altro, esegui il comando di checkout come segue:
$ git checkout my-feature-branch
Passato al ramo "my-feature-branch"
Ora controlliamo il ramo corrente:
$ git branch master * my-feature-branch
Filiale di pagamento
Finora abbiamo usato un comando separato per creare e passare al ramo. Tuttavia, possiamo ottenere questo comando singolo come segue:
$ git checkout -b my-feature-branch
Passato a un nuovo ramo "my-feature-branch"
Ora controlliamo il ramo corrente:
$ git branch master * my-feature-branch
Ripristina albero funzionante
Git ci consente di scartare le modifiche non vincolate. Possiamo raggiungere questo obiettivo usando il comando checkout. Cerchiamo di capirlo con l'esempio.
Prima modifica il file esistente e controlla lo stato del repository:
$ echo "Update README" >> README $ git status -s M README
Ora per annullare le modifiche al file README, esegui il seguente comando:
$ git checkout -- README $ git status -s
Come previsto, il nostro albero di lavoro è pulito, quindi l'ultimo comando non mostra alcun output.
Unisci ramo
Come suggerisce il nome, l'operazione di unione applica le modifiche da un ramo all'altro. Cerchiamo di capire questo passo dopo passo.
Per prima cosa crea un nuovo ramo e salva le modifiche in questo ramo:
$ git checkout -b my-feature-branch
Passato a un nuovo ramo "my-feature-branch"
$ echo "Update README" >> README.md $ git add README.md $ git commit -m "Updated README" [my-feature-branch 42e28aa] Updated README 1 file changed, 1 insertion(+)
Passiamo al ramo principale e applichiamo le modifiche al ramo principale
$ git checkout master
Passato al ramo "master"
La tua filiale è aggiornata con "origine/master".
$ git merge my-feature-branch Updating 220bf4d..42e28aa Fast-forward README.md | 1 + 1 file changed, 1 insertion(+)
Ora verifichiamo che le modifiche siano applicate al ramo principale:
$ git log -1 --oneline 42e28aa (HEAD -> master, my-feature-branch) Updated README
Lavorare con i tag
Tag è un puntatore di riferimento a un particolare commit nella cronologia di Git. Spesso il tag viene utilizzato per contrassegnare la versione di rilascio del prodotto. In questa sezione parleremo delle operazioni di base sui tag come creare, elencare ed eliminare
Crea tag
Creare tag è davvero semplice. Per creare un tag esegui il seguente comando:
$ git tag my-tag
Il comando sopra creerà un tag con nome my-tag. Per creare tag nel repository remoto, eseguire il comando push come segue:
$ git push origin my-tag
Elenco tag
Per elencare i tag, esegui il comando Git tag senza alcun argomento come segue:
$ git tag my-tag
Elimina tag
Per eliminare il tag, esegui il comando del tag Git con l'argomento -d come segue:
$ git tag -d my-tag Deleted tag 'my-tag' (was 220bf4d)
Per eliminare il tag dal repository remoto eseguire il seguente comando:
$ git push origin :my-tag
Conclusione
In questo articolo abbiamo discusso alcune operazioni Git avanzate con esempi. Dopo aver fatto riferimento a questo tutorial, puoi usare Git in modo fluido nel tuo progetto. Se ti piace l'articolo, condividi il tuo feedback e commenti.