I denne lektion vil vi gøre følgende:
- Opret et eksternt lager
- Opret en lokal kopi af fjernlageret
- Opret to grene i den lokale kopi
- Skub en gren til det eksterne lager
- Slet lokale filialer
- Slet fjerntliggende grene
Lektionen skal give dig en samlet forståelse af filialens oprettelse og sletning, så du har en god kommando over de nødvendige trin, når du har brug for at slette en lokal eller ekstern filial.
Lad os komme igang.
1. Oprettelse af et eksternt lager
Lad os oprette en mappe kaldet projekt.git og initialiser for at være det eksterne lager:
$ mkdir-projekt.git$ cd-projekt.git
$ git init -bare
Initialiseret tomt Git-arkiv i / Brugere / zak / _work / LearnGIT / git_delete_branch / projekt.git /
2. Oprettelse af en lokal kopi af Remote Repository
På en ny placering, lad os oprette en lokal kopi kaldet project_local af det eksterne lager ved hjælp af klonkommandoen.
Bemærk: Hvis du arbejder med GitHub eller BitBucket, følger du den samme proces for at klone lageret. I så fald har du et SSH-link i stedet for den fulde filsti, der bruges her.
$ git klon / Brugere / zak / _work / LearnGIT / git_delete_branch / projekt.git projekt_lokalKloning til 'project_local' ..
advarsel: Det ser ud til, at du har klonet et tomt lager.
Færdig.
3. Oprettelse af grene inde i den lokale kopi
Lad os først tilføje en fil til den lokale kopi og derefter skubbe den til det eksterne lager:
$ cd projektlokal$ tryk på ReadMe.txt
$ git add -A
$ git commit -m "Initialisering af modulet"
[master (root-commit) 81eb2a3] Initialisering af modulet
1 fil ændret, 0 indsættelser (+), 0 sletninger (-)
Opret tilstand 100644 ReadMe.txt
$ git push oprindelsesmester
Optælling af objekter: 3, færdig.
Skriveobjekter: 100% (3/3), 221 bytes | 0 byte / s, færdig.
I alt 3 (delta 0), genbrugt 0 (delta 0)
Til / Brugere / zak / _work / LearnGIT / git_delete_branch / projekt.git
* [ny gren] master -> master
I ovenstående kommandoer oprettede vi en fil, der hedder ReadMe.txt, tilføjede den til den lokale kopi, forpligtede den til den lokale kopi og skubbede derefter ændringerne til fjernopbevaringsstedet eller oprindelsens hovedfilial.
Hvis du tjekker filialerne, ser du mastergrenen i den lokale kopi:
$ git gren* mester
Hvis du tjekker fjerntliggende grene, vil du også se mastergrenen der:
$ git gren -roprindelse / mester
Tip: Du kan bruge indstillingen '-a' til at se alle filialer i lokale og eksterne arkiver sammen.
$ git gren -a* mester
fjernbetjeninger / oprindelse / master
Lad os oprette to grene kaldet b1 og b2 fra mastergrenen:
$ git gren b1$ git gren b2
Lad os kontrollere, om grenene blev oprettet:
$ git grenb1
b2
* mester
Nu skal vi foretage nogle ændringer i filialerne:
$ git checkout b1Skiftet til gren 'b1'
$ touch gren1.txt
$ git add -A
$ git commit -m "Branch1-modifikation"
[b1 a2f488e] Gren1-ændring
1 fil ændret, 0 indsættelser (+), 0 sletninger (-)
Opret tilstand 100644 gren1.txt
$ git checkout b2
Skiftet til gren 'b2'
$ touch gren2.txt
$ git add -A
$ git commit -m "Branch2-modifikation"
[b2 2abb723] Branch2-ændring
1 fil ændret, 0 indsættelser (+), 0 sletninger (-)
Opret tilstand 100644 gren2.txt
Lad os kontrollere lokale og eksterne grenstatus:
$ git grenb1
* b2
mestre
$ git gren -r
oprindelse / mester
Vi kan se lokalt, at vi har tre grene master, b1 og b2. Men vi har kun mastergrenen i fjernlageret.
4. At skubbe filialer til Remote Repository
Lad os skubbe b1-grenen til fjernlageret:
$ git push oprindelse b1Optælling af objekter: 2, færdig.
Delta-kompression ved hjælp af op til 4 tråde.
Komprimerende objekter: 100% (2/2), færdig.
Skriveobjekter: 100% (2/2), 249 byte | 0 byte / s, færdig.
I alt 2 (delta 0), genbrugt 0 (delta 0)
Til / Brugere / zakh / _work / LearnGIT / git_delete_branch / projekt.git
* [ny gren] b1 -> b1
Du kan kontrollere de lokale og eksterne filialstatus:
$ git grenb1
* b2
mestre
$ git gren -r
oprindelse / b1
oprindelse / mester
Fra ovenstående grenstatus kan vi se, at b1-grenen også er tilgængelig eksternt.
5. Sletning af filialer lokalt
Du kan slette grene lokalt med indstillingen -d eller -D.
git gren -dLad os først tjekke ind i hovedgrenen, så vi kan slette grenene b1 og b2.
$ git checkout masterSkiftet til gren 'master'
Din filial er opdateret med 'oprindelse / mester'.
Lad os prøve indstillingen -d først for at slette grenen b1:
$ git gren -d b1fejl: Filialen 'b1' er ikke fuldt sammen.
Hvis du er sikker på, at du vil slette det, skal du køre 'git branch -D b1'.
Fejlen fortæller dig, at du skal flette ændringerne fra gren b1. Dette er en beskyttelsesforanstaltning, så du ikke fejlagtigt mister dit arbejde på grene. Du kan bruge indstillingen -D til at tvinge sletning af fusionen. Men i dette tilfælde, lad os fusionere ændringerne fra b1 og b2 til master og skubbe det til det eksterne lager.
$ git fusion b1Opdaterer 81eb2a3 ... a2f488e
Spol frem
gren1.txt | 0
1 fil ændret, 0 indsættelser (+), 0 sletninger (-)
Opret tilstand 100644 gren1.txt
$ git fusion b2
Fletning foretaget af den 'rekursive' strategi.
gren2.txt | 0
1 fil ændret, 0 indsættelser (+), 0 sletninger (-)
Opret tilstand 100644 gren2.txt
$ git push oprindelsesmester
Optælling af objekter: 4, færdig.
Delta-kompression ved hjælp af op til 4 tråde.
Komprimerende objekter: 100% (4/4), færdig.
Skriveobjekter: 100% (4/4), 454 bytes | 0 byte / s, færdig.
I alt 4 (delta 1), genbrugt 0 (delta 0)
Til / Brugere / zak / _work / LearnGIT / git_delete_branch / projekt.git
81eb2a3… 34db496 master -> master
Prøv nu at slette grenene igen:
$ 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 grenene b1 og b2 lokalt.
6. Sletning af eksterne grene
Når du tjekker fjerntliggende grene, ser du stadig b1 til stede:
$ git gren -roprindelse / b1
oprindelse / mester
Du kan bruge følgende kommando til at slette en ekstern gren:
git pushSå du kan slette den eksterne b1-gren med følgende:
$ git push-oprindelse - slet b1Til / Brugere / zakh_eecs / _work / LearnGIT / git_delete_branch / projekt.git
- [slettet] b1
Hvis du nu tjekker dine fjerntliggende grene, skal du ikke se b1 længere:
$ git gren -roprindelse / mester
Tillykke! Du har med succes slettet alle de grene, du oprettede. Øv dig på at lave flere grene og slette dem for at mestre Git-grænsesletningsprocessen.
Yderligere studier:
- https: // git-scm.com / book / da / v1 / Git-Branching-What-a-Branch-Is
- https: // git-scm.com / book / da / v2 / Git-Branching-Branches-in-a-Nutshell
- https: // git-scm.com / book / da / v2 / Git-Branching-Basic-Branching-and-Merging