Git

Slik sletter du en Git-gren

Slik sletter du 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 arkiver kan det imidlertid være litt forvirrende å slette grener.

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

Leksjonen skal gi deg en overordnet forståelse av oppretting og sletting av grenen, slik at du har 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 arkiv

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

$ mkdir-prosjekt.git
$ cd-prosjekt.git
$ git init -bare

Initialisert tomt Git-arkiv i / Brukere / zak / _work / LearnGIT / git_delete_branch / prosjekt.git /

2. Opprette en lokal kopi av Remote Repository

La oss opprette en lokal kopi kalt project_local av det eksterne depotet med et klon-kommando på et nytt sted.

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-kobling i stedet for hele filbanen som brukes her.

$ git clone / Users / zak / _work / LearnGIT / git_delete_branch / project.git project_local
Kloning til 'project_local' ..
advarsel: Det ser ut til at du har klonet et tomt lager.
ferdig.

3. Lage grener inne i den lokale kopien

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

$ cd project_local
 
$ touch ReadMe.tekst
 
$ git add -A
 
$ git commit -m "Initialisere modulen"
 
[master (root-commit) 81eb2a3] Initialisere modulen
1 fil endret, 0 innsettinger (+), 0 slettinger (-)
opprett modus 100644 ReadMe.tekst
 
$ git push origin master
 
Telle objekter: 3, ferdig.
Skriveobjekter: 100% (3/3), 221 byte | 0 byte / s, ferdig.
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 arkivet eller opprinnelsens hovedgren.

Hvis du sjekker grenene, ser du hovedgrenen i den lokale kopien:

$ git gren
* mester

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

$ git gren -r
opprinnelse / mester

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

$ git gren -a
* mester
fjernkontroller / opprinnelse / master

La oss lage to grener kalt b1 og b2 fra hovedgrenen:

$ 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 kassa b1
 
Byttet til gren 'b1'
 
$ berøringsgren1.tekst
 
$ git add -A
 
$ git commit -m "Branch1 modification"
 
[b1 a2f488e] Branch1 modifikasjon
1 fil endret, 0 innsettinger (+), 0 slettinger (-)
opprett modus 100644 gren1.tekst
 
$ git kassa b2
 
Byttet til gren 'b2'
 
$ touch branch2.tekst
 
$ git add -A
 
$ git commit -m "Branch2 modification"
 
[b2 2abb723] Branch2-modifisering
1 fil endret, 0 innsettinger (+), 0 slettinger (-)
opprett modus 100644 gren2.tekst

La oss sjekke lokale og eksterne grenstatuser:

$ git gren
 
b1
* b2
herre
 
$ git gren -r
 
opprinnelse / mester

Vi kan se lokalt at vi har tre grener master, b1 og b2. Men vi har bare hovedgrenen i det eksterne arkivet.

4. Skyve grener til eksternt arkiv

La oss skyve b1-grenen til det eksterne depotet:

$ git push origin b1
 
Telleobjekter: 2, ferdig.
Delta komprimering med opptil 4 tråder.
Komprimeringsobjekter: 100% (2/2), ferdig.
Skriveobjekter: 100% (2/2), 249 byte | 0 byte / s, ferdig.
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 / mester

Fra grenstatusene ovenfor kan vi se at b1-grenen også er tilgjengelig eksternt.

5. Slette filialer lokalt

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

git gren -d

La oss først sjekke inn i hovedgrenen, slik at vi kan slette b1 og b2 grenene.

$ git checkout master
 
Byttet til gren 'master'
Filialen din er oppdatert med 'opprinnelse / mester'.

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

$ git gren -d b1
 
feil: Filialen 'b1' er ikke helt slått sammen.
Hvis du er sikker på at du vil slette den, kjører du 'git branch -D b1'.

Feilen forteller deg at du må slå sammen endringene fra gren b1. Dette er en garanti, slik at du ikke feilaktig mister arbeidet ditt med filialer. Du kan bruke alternativet -D 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 merge b1
 
Oppdaterer 81eb2a3 ... a2f488e
Spol fremover
gren1.txt | 0
1 fil endret, 0 innsettinger (+), 0 slettinger (-)
opprett modus 100644 gren1.tekst
 
$ git merge b2
 
Sammenslåing laget av den 'rekursive' strategien.
gren2.txt | 0
1 fil endret, 0 innsettinger (+), 0 slettinger (-)
opprett modus 100644 gren2.tekst
 
$ git push origin master
 
Telleobjekter: 4, ferdig.
Delta komprimering med opptil 4 tråder.
Komprimerende gjenstander: 100% (4/4), ferdig.
Skriveobjekter: 100% (4/4), 454 byte | 0 byte / s, ferdig.
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 filialer

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

$ git gren -r
 
opprinnelse / b1
opprinnelse / mester

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

git push --slett

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

$ git push origin - slett b1
 
Til / Brukere / zakh_eecs / _work / LearnGIT / git_delete_branch / prosjekt.git
- [slettet] b1

Nå hvis du sjekker de eksterne grenene dine, bør du ikke se b1 lenger:

$ git gren -r
 
opprinnelse / mester

Gratulerer! Du har slettet alle grenene du opprettet. Øv på å lage flere grener og slette dem for å mestre Git-grense-slettingsprosessen.

Videre studier:

  • https: // git-scm.com / book / no / v1 / Git-Branching-What-a-Branch-Is
  • https: // git-scm.com / book / no / v2 / Git-Branching-Branches-in-a-Nutshell
  • https: // git-scm.com / book / no / v2 / Git-Branching-Basic-Branching-and-Merging
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...
Beste Linux Distros for spill i 2021
Linux-operativsystemet har kommet langt fra det originale, enkle, serverbaserte utseendet. Dette operativsystemet har forbedret seg enormt de siste år...
Hvordan fange opp og streame spilløkten din på Linux
Tidligere ble spill bare ansett som en hobby, men med tiden så spillindustrien en enorm vekst når det gjelder teknologi og antall spillere. Spillpubli...