I den här lektionen kommer vi att göra följande:
- Skapa ett fjärrförvar
- Skapa en lokal kopia av fjärrförvaret
- Skapa två filialer i den lokala kopian
- Tryck en gren till fjärrförvaret
- Ta bort lokala filialer
- Ta bort avlägsna grenar
Lektionen ska ge dig en övergripande förståelse för filialens skapande och borttagning, så att du har ett bra kommando över de nödvändiga stegen när du behöver ta bort en lokal eller avlägsen gren.
Låt oss börja.
1. Skapa ett fjärrförvar
Låt oss skapa en mapp som heter projekt.git och initialisera för att vara fjärrförvaret:
$ mkdir-projekt.git$ cd-projekt.git
$ git init -bare
Initierat tomt Git-arkiv i / Användare / zak / _work / LearnGIT / git_delete_branch / projekt.git /
2. Skapa en lokal kopia av fjärranslutet
På en ny plats, låt oss skapa en lokal kopia som heter project_local av fjärrförvaret med hjälp av klonkommandot.
Obs! Om du arbetar med GitHub eller BitBucket följer du samma process för att klona förvaret. I så fall kommer du att ha en SSH-länk istället för den fullständiga filvägen som används här.
$ git clone / Users / zak / _work / LearnGIT / git_delete_branch / project.git project_localKloning till 'project_local' ..
varning: Du verkar ha klonat ett tomt arkiv.
Gjort.
3. Skapa filialer i den lokala kopian
Låt oss först lägga till en fil i den lokala kopian och sedan trycka den till fjärrförvaret:
$ cd project_local$ touch ReadMe.Text
$ git add -A
$ git commit -m "Initialisera modulen"
[master (root-commit) 81eb2a3] Initiera modulen
1 fil har ändrats, 0 infogningar (+), 0 raderingar (-)
skapa läge 100644 ReadMe.Text
$ git push origin master
Räkna objekt: 3, klar.
Skrivobjekt: 100% (3/3), 221 byte | 0 byte / s, klar.
Totalt 3 (delta 0), återanvändt 0 (delta 0)
Till / Användare / zak / _work / LearnGIT / git_delete_branch / projekt.git
* [ny gren] master -> master
I kommandona ovan skapade vi en fil som heter ReadMe.txt, lagt till den i den lokala kopian, förbundit den till den lokala kopian och tryckte sedan ändringarna till fjärrförvaret eller ursprungets huvudfilial.
Om du kontrollerar filialerna ser du huvudgrenen i den lokala kopian:
$ git gren* mästare
Om du kontrollerar de avlägsna grenarna ser du också huvudgrenen där:
$ git gren -rursprung / mästare
Tips: Du kan använda alternativet '-a' för att se alla filialer i lokala och fjärrförvar tillsammans.
$ git gren -a* mästare
fjärrkontroller / ursprung / master
Låt oss skapa två grenar som heter b1 och b2 från huvudgrenen:
$ git gren b1$ git gren b2
Låt oss kontrollera om grenarna skapades:
$ git grenb1
b2
* mästare
Nu ska vi göra några ändringar i filialerna:
$ git kassa b1Byt till gren 'b1'
$ touch gren1.Text
$ git add -A
$ git commit -m "Branch1 modification"
[b1 a2f488e] Branch1-modifiering
1 fil har ändrats, 0 infogningar (+), 0 raderingar (-)
skapa läge 100644 gren1.Text
$ git kassa b2
Byt till gren 'b2'
$ touch branch2.Text
$ git add -A
$ git commit -m "Branch2 modification"
[b2 2abb723] Branch2-modifiering
1 fil har ändrats, 0 infogningar (+), 0 raderingar (-)
skapa läge 100644 gren2.Text
Låt oss kontrollera lokala och avlägsna grenstatus:
$ git grenb1
* b2
bemästra
$ git gren -r
ursprung / mästare
Vi kan se lokalt att vi har tre grenar master, b1 och b2. Men vi har bara huvudgrenen i fjärrförvaret.
4. Pressa filialer till fjärrförvaret
Låt oss skjuta b1-grenen till fjärrförvaret:
$ git push origin b1Räkna objekt: 2, klar.
Delta komprimering med upp till 4 trådar.
Komprimeringsföremål: 100% (2/2), klar.
Skrivobjekt: 100% (2/2), 249 byte | 0 byte / s, klar.
Totalt 2 (delta 0), återanvändt 0 (delta 0)
Till / Användare / zakh / _work / LearnGIT / git_delete_branch / projekt.git
* [ny gren] b1 -> b1
Du kan kontrollera de lokala och avlägsna grenstatuserna:
$ git grenb1
* b2
bemästra
$ git gren -r
ursprung / b1
ursprung / mästare
Från ovanstående grenstatus kan vi se att b1-grenen också är tillgänglig på distans.
5. Ta bort filialer lokalt
Du kan ta bort filialer lokalt med alternativet -d eller -D.
git gren -dLåt oss först kolla in huvudgrenen, så att vi kan ta bort grenarna b1 och b2.
$ git checkout masterBytt till filial "master"
Din filial är uppdaterad med "origin / master".
Låt oss försöka med alternativet -d först för att ta bort grenen b1:
$ git gren -d b1fel: Filialen 'b1' är inte helt sammanslagen.
Om du är säker på att du vill ta bort den, kör 'git branch -D b1'.
Felet säger att du måste slå samman ändringarna från gren b1. Detta är en skyddsåtgärd, så att du inte av misstag tappar ditt arbete på filialer. Du kan använda alternativet -D för att tvinga bort rensningen. Men i det här fallet, låt oss slå samman ändringarna från b1 och b2 till master och driva det till fjärrförvaret.
$ git merge b1Uppdaterar 81eb2a3 ... a2f488e
Snabbspola
gren1.txt | 0
1 fil har ändrats, 0 infogningar (+), 0 raderingar (-)
skapa läge 100644 gren1.Text
$ git merge b2
Sammanfogning görs med den "rekursiva" strategin.
gren2.txt | 0
1 fil har ändrats, 0 infogningar (+), 0 raderingar (-)
skapa läge 100644 gren2.Text
$ git push origin master
Räkna objekt: 4, färdiga.
Delta komprimering med upp till 4 trådar.
Komprimeringsföremål: 100% (4/4), klar.
Skrivobjekt: 100% (4/4), 454 byte | 0 byte / s, klar.
Totalt 4 (delta 1), återanvändt 0 (delta 0)
Till / Användare / zak / _work / LearnGIT / git_delete_branch / projekt.git
81eb2a3… 34db496 master -> master
Försök nu ta bort filialerna igen:
$ git grenb1
b2
* mästare
$ git gren -d b1
Borttagen gren b1 (var a2f488e).
$ git gren -d b2
Borttagen gren b2 (var 2abb723).
$ git gren
* mästare
Du har tagit bort filerna b1 och b2 lokalt.
6. Ta bort fjärrgrenar
När du kontrollerar fjärrgrenarna ser du fortfarande b1 närvarande:
$ git gren -rursprung / b1
ursprung / mästare
Du kan använda följande kommando för att ta bort en fjärrgren:
git pushSå du kan ta bort fjärr-b1-grenen med följande:
$ git push-ursprung - radera b1Till / Användare / zakh_eecs / _work / LearnGIT / git_delete_branch / projekt.git
- [borttagen] b1
Om du nu kontrollerar dina avlägsna grenar ska du inte se b1 längre:
$ git gren -rursprung / mästare
Grattis! Du har tagit bort alla filialer du skapat. Öva på att göra fler filialer och ta bort dem för att bemästra borttagningsprocessen för Git-filialen.
Ytterligare studier:
- https: // git-scm.com / book / sv / v1 / Git-Branching-What-a-Branch-Is
- https: // git-scm.com / book / sv / v2 / Git-Branching-Branches-in-a-Nutshell
- https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging