In questa lezione, faremo quanto segue:
- Crea un repository remoto
- Crea una copia locale del repository remoto
- Crea due rami nella copia locale
- Invia un ramo al repository remoto
- Elimina le filiali locali
- Elimina rami remoti
La lezione dovrebbe darti una comprensione generale del processo di creazione e eliminazione del ramo, in modo da avere una buona padronanza dei passaggi necessari quando è necessario eliminare un ramo locale o remoto.
Iniziamo.
1. Creazione di un repository remoto
Creiamo una cartella chiamata project.git e inizializza come repository remoto:
$ mkdir progetto.idiota$ progetto cd.idiota
$ git init -bare
Repository Git vuoto inizializzato in /Users/zak/_work/LearnGIT/git_delete_branch/project.idiota/
2. Creazione di una copia locale del repository remoto
In una nuova posizione, creiamo una copia locale denominata project_local del repository remoto utilizzando il comando clone.
Nota: se stai lavorando con GitHub o BitBucket, seguirai la stessa procedura per clonare il repository. In tal caso, avrai un collegamento SSH invece del percorso completo del file utilizzato qui.
$ git clone /Users/zak/_work/LearnGIT/git_delete_branch/project.git project_localClonazione in 'project_local'..
avviso: sembra che tu abbia clonato un repository vuoto.
fatto.
3. Creazione di rami all'interno della copia locale
Aggiungiamo prima un file alla copia locale e poi inseriamolo nel repository remoto:
$ cd project_local$ tocca Leggimi.TXT
$ git add -A
$ git commit -m "Inizializzazione del modulo"
[master (root-commit) 81eb2a3] Inizializzazione del modulo
1 file modificato, 0 inserimenti(+), 0 eliminazioni(-)
crea modalità 100644 Leggimi.TXT
$ git push origine master
Conteggio oggetti: 3, fatto.
Oggetti in scrittura: 100% (3/3), 221 byte | 0 byte/s, fatto.
Totale 3 (delta 0), riutilizzato 0 (delta 0)
A /Users/zak/_work/LearnGIT/git_delete_branch/project.idiota
* [nuovo ramo] master -> master
Nei comandi precedenti, abbiamo creato un file chiamato ReadMe.txt, lo ha aggiunto alla copia locale, lo ha confermato nella copia locale e quindi ha inviato le modifiche al repository remoto o al ramo principale dell'origine.
Se controlli i rami, vedrai il ramo principale nella copia locale:
$ git branch* maestro
Se controlli i rami remoti, vedrai anche il ramo principale:
$ git branch -rorigine/maestro
Suggerimento: puoi usare l'opzione '-a' per vedere tutti i rami nei repository locali e remoti insieme.
$ git ramo -a* maestro
telecomandi/origine/master
Creiamo due branch chiamati b1 e b2 dal branch master:
$ git ramo b1$ git ramo b2
Verifichiamo se i rami sono stati creati:
$ git branchb1
b2
* maestro
Ora apportiamo alcune modifiche ai rami:
$ git checkout b1Passato al ramo 'b1'
$ tocca ramo1.TXT
$ git add -A
$ git commit -m "Modifica ramo1"
[b1 a2f488e] Modifica Branch1
1 file modificato, 0 inserimenti(+), 0 eliminazioni(-)
crea modalità 100644 branch1.TXT
$ git checkout b2
Passato al ramo 'b2'
$ tocca ramo2.TXT
$ git add -A
$ git commit -m "Modifica Branch2"
[b2 2abb723] Modifica ramo2
1 file modificato, 0 inserimenti(+), 0 eliminazioni(-)
crea modalità 100644 branch2.TXT
Controlliamo gli stati dei rami locali e remoti:
$ git branchb1
* b2
maestro
$ git branch -r
origine/maestro
Possiamo vedere localmente che abbiamo tre branch master, b1 e b2. Ma abbiamo solo il ramo master nel repository remoto.
4. Invio di rami al repository remoto
Inviamo il ramo b1 al repository remoto:
$ git push origin b1Conteggio oggetti: 2, fatto.
Compressione delta utilizzando fino a 4 thread.
Comprimere oggetti: 100% (2/2), fatto.
Oggetti in scrittura: 100% (2/2), 249 byte | 0 byte/s, fatto.
Totale 2 (delta 0), riutilizzato 0 (delta 0)
A /Users/zakh/_work/LearnGIT/git_delete_branch/project.idiota
* [nuovo ramo] b1 -> b1
Puoi controllare lo stato della filiale locale e remota:
$ git branchb1
* b2
maestro
$ git branch -r
origine/b1
origine/maestro
Dagli stati del ramo sopra, possiamo vedere che il ramo b1 è disponibile anche da remoto.
5. Eliminazione di rami localmente
Puoi eliminare i rami localmente con l'opzione -d o -D.
git branch -dControlliamo prima il ramo master, così possiamo eliminare i rami b1 e b2.
$ git checkout masterPassato al ramo 'master'
La tua filiale è aggiornata con 'origine/master'.
Proviamo prima l'opzione -d per eliminare il ramo b1:
$ git branch -d b1errore: il ramo 'b1' non è completamente unito.
Se sei sicuro di volerlo eliminare, esegui 'git branch -D b1'.
L'errore ti dice che devi unire le modifiche dal ramo b1. Questa è una salvaguardia, così non perdi per errore il tuo lavoro sui rami. Puoi usare l'opzione -D per forzare l'eliminazione dell'unione. Ma in questo caso, uniamo le modifiche da b1 e b2 in master e inseriamole nel repository remoto.
$ git merge b1Aggiornamento 81eb2a3… a2f488e
Avanti veloce
ramo1.txt | 0
1 file modificato, 0 inserimenti(+), 0 eliminazioni(-)
crea modalità 100644 branch1.TXT
$ git merge b2
Fusione realizzata dalla strategia 'ricorsiva'.
ramo2.txt | 0
1 file modificato, 0 inserimenti(+), 0 eliminazioni(-)
crea modalità 100644 branch2.TXT
$ git push origine master
Conteggio oggetti: 4, fatto.
Compressione delta utilizzando fino a 4 thread.
Comprimere oggetti: 100% (4/4), fatto.
Oggetti di scrittura: 100% (4/4), 454 byte | 0 byte/s, fatto.
Totale 4 (delta 1), riutilizzato 0 (delta 0)
A /Users/zak/_work/LearnGIT/git_delete_branch/project.idiota
81eb2a3… 34db496 master -> master
Ora prova a eliminare nuovamente i rami:
$ git branchb1
b2
* maestro
$ git branch -d b1
Ramo eliminato b1 (era a2f488e).
$ git branch -d b2
Eliminato ramo b2 (era 2abb723).
$ git branch
* maestro
Hai eliminato con successo i rami b1 e b2 localmente.
6. Eliminazione di rami remoti
Quando controlli i rami remoti, vedi ancora b1 presente:
$ git branch -rorigine/b1
origine/maestro
È possibile utilizzare il seguente comando per eliminare un ramo remoto:
git pushQuindi puoi eliminare il ramo b1 remoto con quanto segue:
$ git push origin --delete b1A /Users/zakh_eecs/_work/LearnGIT/git_delete_branch/project.idiota
- [cancellato] b1
Ora se controlli i tuoi rami remoti, non dovresti più vedere b1:
$ git branch -rorigine/maestro
Congratulazioni! Hai eliminato con successo tutti i rami che hai creato. Esercitati a creare più rami ed eliminarli per padroneggiare il processo di eliminazione dei rami di Git.
Ulteriori studi:
- https://git-scm.com/book/it/v1/Git-Branching-What-a-Branch-Is
- https://git-scm.com/book/it/v2/Git-Branches-Branches-in-a-Nutshell
- https://git-scm.com/book/it/v2/Git-Branching-Basic-Branching-and-Merging