Hvordan slette en git -gren

Hvordan slette en git -gren
Det er enkelt å lage grener i git. Det regnes som en av Gits beste funksjoner. På grunn av tilstedeværelsen av eksterne og lokale depoter, kan slettegrener imidlertid bli litt forvirrende.

I denne leksjonen vil vi gjøre følgende:

  • Lag et eksternt depot
  • Opprett en lokal kopi av det eksterne depotet
  • Lag to grener i den lokale kopien
  • Skyv en gren til det eksterne depotet
  • Slett lokale grener
  • Slett eksterne grener

Leksjonen skal gi deg en generell forståelse av filialoppretting og slettingsprosess, slik at du har en god kommando over de nødvendige trinnene når du trenger å slette en lokal eller ekstern gren.

La oss komme i gang.

1. Opprette et eksternt depot

La oss opprette en mappe som heter Project.git og initialiser for å være det eksterne depotet:

$ MKDIR -prosjekt.git
$ CD -prosjekt.git
$ git init -bar

Initialisert tom Git -depot i/brukere/zak/_work/learngit/git_delete_branch/prosjekt.git/

2. Opprette en lokal kopi av det eksterne depot

La oss opprette en lokal kopi som heter Project_Local på det eksterne depotet ved hjelp av klonekommandoen som heter Project_Local fra det eksterne depotet ved hjelp av klonekommandoen.

Merk: Hvis du jobber med GitHub eller Bitbucket, vil du følge den samme prosessen for å klone depotet. I så fall vil du ha en SSH -lenke i stedet for den fulle filstien som brukes her.

$ git klon/brukere/zak/_work/learngit/git_delete_branch/prosjekt.git project_local
Kloning til 'Project_Local' ..
Advarsel: Du ser ut til å ha klonet et tomt depot.
Ferdig.

3. Opprette filialer inne i den lokale kopien

La oss først legge til en fil til den lokale kopien og deretter skyve den til det eksterne depotet:

$ CD Project_Local
$ Touch Readme.tekst
$ git add -a
$ git commit -m "Initialisere modulen"
[Master (Root-Commit) 81EB2A3] Initialisering av modulen
1 Fil endret, 0 innsettinger (+), 0 delesjoner (-)
Opprett modus 100644 Readme.tekst
$ git push origin master
Teller objekter: 3, gjort.
Skrive objekter: 100% (3/3), 221 byte | 0 byte/s, gjort.
Totalt 3 (Delta 0), gjenbrukt 0 (Delta 0)
Til/brukere/zak/_work/learngit/git_delete_branch/prosjekt.git
* [ny gren] master -> master

I kommandoene ovenfor opprettet vi en fil som heter Readme.TXT, la den til den lokale kopien, forpliktet den til den lokale kopien, og presset deretter endringene til det eksterne depotet eller Origin's Master Branch.

Hvis du sjekker filialene, vil du se hovedgrenen i den lokale kopien:

$ git gren
* mester

Hvis du sjekker de eksterne grenene, vil du se hovedgrenen der også:

$ git gren -r
opprinnelse/master

Tips: Du kan bruke alternativet '-a' for å se alle grener i lokale og eksterne lagre sammen.

$ git gren -a
* mester
Remotes/Origin/Master

La oss lage to grener kalt B1 og B2 fra mastergrenen:

$ git gren b1
$ git gren b2

La oss sjekke om grenene ble opprettet:

$ git gren
B1
B2
* mester

Nå skal vi gjøre noen endringer i grenene:

$ git -kassen B1
Byttet til grenen 'B1'
$ Touch Branch1.tekst
$ git add -a
$ git commit -m "filial1 modifisering"
[B1 A2F488E] Branch1 Modification
1 Fil endret, 0 innsettinger (+), 0 delesjoner (-)
Opprett modus 100644 filial1.tekst
$ git -kassen B2
Byttet til grenen 'B2'
$ Touch Branch2.tekst
$ git add -a
$ git commit -m "gren2 modifisering"
[B2 2ABB723] Branch2 Modification
1 Fil endret, 0 innsettinger (+), 0 delesjoner (-)
Opprett modus 100644 Branch2.tekst

La oss sjekke lokale og eksterne grenstatuser:

$ git gren
B1
* B2
herre
$ git gren -r
opprinnelse/master

Vi kan se lokalt vi har tre grener master, b1 og b2. Men vi har bare mastergrenen i det eksterne depot.

4. Skyver grener til eksternt depot

La oss skyve B1 -grenen til det eksterne depotet:

$ git push origin b1
Teller objekter: 2, gjort.
Delta -komprimering ved bruk av opptil 4 tråder.
Komprimerende objekter: 100% (2/2), gjort.
Skrive objekter: 100% (2/2), 249 byte | 0 byte/s, gjort.
Totalt 2 (Delta 0), gjenbrukt 0 (Delta 0)
Til/brukere/zakh/_work/learngit/git_delete_branch/prosjekt.git
* [ny gren] B1 -> B1

Du kan sjekke de lokale og eksterne grenstatusene:

$ git gren
B1
* B2
herre
$ git gren -r
opprinnelse/b1
opprinnelse/master

Fra ovennevnte grenstatuser kan vi se at B1 -grenen er tilgjengelig eksternt også.

5. Slette grener lokalt

Du kan slette grener lokalt med alternativet -d eller -d.

git gren -d

La oss først sjekke inn i mastergrenen, slik at vi kan slette B1- og B2 -grenene.

$ git Checkout Master
Byttet til filial 'master'
Filialen din er oppdatert med 'Origin/Master'.

La oss prøve -d -alternativet først for å slette grenen B1:

$ git gren -d b1
Feil: grenen 'B1' er ikke fullstendig sammenslått.
Hvis du er sikker på at du vil slette den, kjør 'git gren -d b1'.

Feilen forteller deg at du må slå sammen endringene fra gren B1. Dette er en beskyttelse, slik at du ikke mister arbeidet med grener. Du kan bruke -d -alternativet til å tvinge sletting av sammenslåingen. Men i dette tilfellet, la oss slå sammen endringene fra B1 og B2 til Master og skyve den til det eksterne depotet.

$ git fusjon b1
Oppdatering 81EB2A3… A2F488E
Spol fremover
filial1.txt | 0
1 Fil endret, 0 innsettinger (+), 0 delesjoner (-)
Opprett modus 100644 filial1.tekst
$ git fusjon b2
Fusjon laget av den "rekursive" strategien.
filial2.txt | 0
1 Fil endret, 0 innsettinger (+), 0 delesjoner (-)
Opprett modus 100644 Branch2.tekst
$ git push origin master
Teller objekter: 4, gjort.
Delta -komprimering ved bruk av opptil 4 tråder.
Komprimerende objekter: 100% (4/4), gjort.
Skrive objekter: 100% (4/4), 454 byte | 0 byte/s, gjort.
Totalt 4 (Delta 1), gjenbrukt 0 (Delta 0)
Til/brukere/zak/_work/learngit/git_delete_branch/prosjekt.git
81EB2A3… 34DB496 MASTER -> MASTER

Prøv nå å slette grenene igjen:

$ git gren
B1
B2
* mester
$ git gren -d b1
Slettet gren B1 (var A2F488E).
$ git gren -d b2
Slettet gren B2 (var 2ABB723).
$ git gren
* mester

Du har slettet B1- og B2 -grenene lokalt.

6. Slette eksterne grener

Når du sjekker de eksterne grenene, ser du fortsatt B1 til stede:

$ git gren -r
opprinnelse/b1
opprinnelse/master

Du kan bruke følgende kommando til å slette en ekstern gren:

git push --slett

Så du kan slette den eksterne B1 -grenen med følgende:

$ git push opprinnelse -delete b1
Til/brukere/zakh_eecs/_work/learngit/git_delete_branch/prosjekt.git
- [slettet] B1

Hvis du sjekker de eksterne grenene dine, bør du ikke se B1 lenger:

$ git gren -r
opprinnelse/master

Gratulerer! Du har slettet alle grenene du opprettet. Øv å lage flere grener og slette dem for å mestre slettingsprosessen for git gren.

Videre studier:

  • https: // git-cm.com/bok/en/v1/git-forgrening-hva-forgren-er
  • https: // git-cm.com/bok/en/v2/git-forgrening-gren-i-a-nutshell
  • https: // git-cm.com/bok/en/v2/git-forgrenings-basisk-forgrening og sammenslåing