Git

Hur man tar bort en Git-gren

Hur man tar bort en Git-gren
Det är enkelt att skapa filialer i Git. Det anses vara en av Gits bästa funktioner. Men på grund av närvaron av avlägsna och lokala förvar kan radering av filialer bli lite förvirrande.

I den här lektionen kommer vi att göra följande:

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_local
Kloning 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 -r
ursprung / 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 gren
 
b1
b2
* mästare

Nu ska vi göra några ändringar i filialerna:

$ git kassa b1
 
Byt 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 gren
 
b1
* 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 b1
 
Rä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 gren
 
b1
* 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 -d

Låt oss först kolla in huvudgrenen, så att vi kan ta bort grenarna b1 och b2.

$ git checkout master
 
Bytt 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 b1
 
fel: 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 b1
 
Uppdaterar 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 gren
 
b1
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 -r
 
ursprung / b1
ursprung / mästare

Du kan använda följande kommando för att ta bort en fjärrgren:

git push --radera

Så du kan ta bort fjärr-b1-grenen med följande:

$ git push-ursprung - radera b1
 
Till / 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 -r
 
ursprung / 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
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...
Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...
Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...