I denne leksjonen vil vi gjøre følgende:
- Opprett 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 filialer
- Slett eksterne grener
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_localKloning 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 -ropprinnelse / 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 grenb1
b2
* mester
Nå skal vi gjøre noen endringer i grenene:
$ git kassa b1Byttet 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 grenb1
* 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 b1Telleobjekter: 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 grenb1
* 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 -dLa oss først sjekke inn i hovedgrenen, slik at vi kan slette b1 og b2 grenene.
$ git checkout masterByttet 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 b1feil: 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 b1Oppdaterer 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 grenb1
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 -ropprinnelse / b1
opprinnelse / mester
Du kan bruke følgende kommando for å slette en ekstern gren:
git pushSå du kan slette den eksterne b1-grenen med følgende:
$ git push origin - slett b1Til / 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 -ropprinnelse / 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