Come eliminare un ramo Git

Come eliminare un ramo Git
Creare rami in Git è facile. È considerata una delle migliori caratteristiche di Git. Tuttavia, a causa della presenza di repository remoti e locali, l'eliminazione delle filiali può diventare un po 'confusa.

In questa lezione, faremo quanto segue:

  • Crea un repository remoto
  • Crea una copia locale del repository remoto
  • Crea due filiali nella copia locale
  • Spingere un ramo nel repository remoto
  • Elimina filiali locali
  • Elimina i rami remoti

La lezione dovrebbe darti una comprensione generale del processo di creazione e cancellazione della filiale, quindi hai un buon comando sui passaggi necessari quando è necessario eliminare una filiale locale o remota.

Iniziamo.

1. Creazione di un repository remoto

Creiamo una cartella chiamata Progetto.git e inizializza per essere il repository remoto:

progetto $ mkdir.idiota
Progetto CD $.idiota
$ git init -bare

Repository git vuoto inizializzato in/utenti/zak/_work/apprendimento/git_delete_branch/progetto.idiota/

2. Creazione di una copia locale del repository remoto

In una nuova posizione, creiamo una copia locale chiamata Project_local del repository remoto utilizzando il comando clone.

Nota: se stai lavorando con GitHub o Bitbucket, seguirai lo stesso processo per clonare il repository. In tal caso, avrai un link SSH invece del percorso completo utilizzato qui.

$ git clone/utenti/zak/_work/apprendimento/git_delete_branch/progetto.Git Project_Local
Cloning in "Project_local" ..
ATTENZIONE: sembra che tu abbia clonato un repository vuoto.
Fatto.

3. Creazione di filiali all'interno della copia locale

Aggiungiamo prima un file alla copia locale e quindi spingiamolo al repository remoto:

$ CD Project_Local
$ touch readme.TXT
$ git aggiungi -a
$ git commit -m "inizializza il modulo"
[Master (Root-Commit) 81EB2A3] Inizializzazione del modulo
1 file modificato, 0 inserzioni (+), 0 delezioni (-)
Crea modalità 100644 Readme.TXT
$ git Push Origin Master
Contare gli oggetti: 3, fatto.
Oggetti di scrittura: 100% (3/3), 221 byte | 0 byte/s, fatto.
Totale 3 (Delta 0), riutilizzato 0 (Delta 0)
A/utenti/zak/_work/apprendimento/git_delete_branch/progetto.idiota
* [New Branch] Master -> Master

Nei comandi sopra, abbiamo creato un file chiamato readme.txt, aggiunto alla copia locale, lo ha impegnato nella copia locale, quindi ha spinto le modifiche al repository remoto o alla filiale principale di Origin.

Se controlli le filiali, vedrai la filiale principale nella copia locale:

$ git filiale
* maestro

Se controlli i rami remoti, vedrai anche la filiale master lì:

$ git branch -r
Origine/Master

Suggerimento: puoi usare l'opzione '-A' per vedere tutte le filiali nei repository locali e remoti insieme.

$ git branch -a
* maestro
Remote/Origine/Master

Creiamo due rami chiamati B1 e B2 dal ramo principale:

$ Git Branch B1
$ Git Branch B2

Controlliamo se i rami sono stati creati:

$ git filiale
B1
B2
* maestro

Ora apporteremo alcune modifiche ai rami:

$ git checkout B1
Passato a Branch 'B1'
$ touch branch1.TXT
$ git aggiungi -a
$ git commit -m "branch1 modifica"
[B1 A2F488E] Modifica Branch1
1 file modificato, 0 inserzioni (+), 0 delezioni (-)
Crea modalità 100644 Branch1.TXT
$ git checkout B2
Passato a Branch 'B2'
$ touch branch2.TXT
$ git aggiungi -a
$ git commit -m "branch2 modifica"
[B2 2abb723] Modifica Branch2
1 file modificato, 0 inserzioni (+), 0 delezioni (-)
Crea modalità 100644 Branch2.TXT

Controlliamo gli stati della filiale locali e remoti:

$ git filiale
B1
* B2
maestro
$ git branch -r
Origine/Master

Possiamo vedere localmente abbiamo tre filiali maestro, b1 e b2. Ma abbiamo solo il ramo principale nel repository remoto.

4. Spingere i rami al repository remoto

Spingiamo il ramo B1 nel repository remoto:

$ git Push Origin B1
Contare gli oggetti: 2, fatto.
Compressione delta usando fino a 4 thread.
Oggetti di compressione: 100% (2/2), fatto.
Oggetti di scrittura: 100% (2/2), 249 byte | 0 byte/s, fatto.
Totale 2 (Delta 0), riutilizzato 0 (Delta 0)
A/utenti/zakh/_work/apprendimento/git_delete_branch/progetto.idiota
* [New Branch] B1 -> B1

È possibile controllare gli stati della filiale locali e remoti:

$ git filiale
B1
* B2
maestro
$ git branch -r
Origine/B1
Origine/Master

Dagli stati di ramo sopra, possiamo vedere che il ramo B1 è disponibile anche in remoto.

5. Eliminazione di rami a livello locale

È possibile eliminare i rami localmente con l'opzione -d o -d.

Git Branch -D

Per prima cosa controlliamo il ramo principale, così possiamo eliminare i rami B1 e B2.

$ git checkout master
Passato a Branch 'Master'
La tua filiale è aggiornata con "origine/master".

Proviamo prima l'opzione -d per eliminare il ramo B1:

$ git branch -d b1
Errore: il ramo "B1" non è completamente unito.
Se sei sicuro di volerlo eliminarlo, esegui 'Git Branch -D B1'.

L'errore ti sta dicendo che devi unire le modifiche dalla filiale B1. Questa è una salvaguardia, quindi non perdi erroneamente il tuo lavoro sui rami. È possibile utilizzare l'opzione -D per forzare eliminare la fusione. Ma in questo caso, unire le modifiche da B1 e B2 a Master e spingiamolo nel repository remoto.

$ git unire b1
Aggiornamento 81EB2A3 ... A2F488E
Avanti veloce
Branch1.txt | 0
1 file modificato, 0 inserzioni (+), 0 delezioni (-)
Crea modalità 100644 Branch1.TXT
$ git unire b2
Unione fatta dalla strategia "ricorsiva".
Branch2.txt | 0
1 file modificato, 0 inserzioni (+), 0 delezioni (-)
Crea modalità 100644 Branch2.TXT
$ git Push Origin Master
Contare gli oggetti: 4, fatto.
Compressione delta usando fino a 4 thread.
Oggetti di compressione: 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/utenti/zak/_work/apprendimento/git_delete_branch/progetto.idiota
81eb2a3… 34db496 Master -> Master

Ora prova a eliminare di nuovo i rami:

$ git filiale
B1
B2
* maestro
$ git branch -d b1
Filiale eliminato B1 (era A2F488E).
$ git branch -d b2
Filiale eliminato B2 (era 2abb723).
$ git filiale
* maestro

Hai eliminato con successo i rami B1 e B2 a livello locale.

6. Eliminazione di rami remoti

Quando controlli i rami remoti, vedi ancora B1 presente:

$ git branch -r
Origine/B1
Origine/Master

È possibile utilizzare il seguente comando per eliminare un ramo remoto:

Git Push --eliminare

Quindi puoi eliminare il ramo B1 remoto con quanto segue:

$ git Push Origin -Dlete B1
A/utenti/zakh_eecs/_work/apprendimento/git_delete_branch/progetto.idiota
- [Eliminato] B1

Ora se controlli i tuoi rami remoti, non dovresti più vedere B1:

$ git branch -r
Origine/Master

Congratulazioni! Hai eliminato con successo tutti i rami che hai creato. Esercitati a fare più filiali e cancellarli per padroneggiare il processo di cancellazione del ramo Git.

Ulteriori studi:

  • https: // git-scm.com/book/en/v1/git-branching-what-a-branch-is
  • https: // git-scm.com/book/en/v2/git-branching-branches-in-a-nutshell
  • https: // git-scm.com/book/en/v2/git-branching-basic-ranch-and-merging