V této lekci provedeme následující:
- Vytvořte vzdálené úložiště
- Vytvořte místní kopii vzdáleného úložiště
- Vytvořte dvě větve v místní kopii
- Zatlačte jednu větev do vzdáleného úložiště
- Odstranit místní pobočky
- Odstranit vzdálené větve
Lekce by vám měla poskytnout celkové pochopení procesu vytváření a mazání větví, abyste měli dobrý přehled o nezbytných krocích, když potřebujete odstranit místní nebo vzdálenou větev.
Začněme.
1. Vytvoření vzdáleného úložiště
Vytvořme složku s názvem projekt.git a inicializujte se jako vzdálené úložiště:
$ mkdir projekt.sakra$ cd projekt.sakra
$ git init -bare
Inicializované prázdné úložiště Git v / Users / zak / _work / LearnGIT / git_delete_branch / project.git /
2. Vytvoření místní kopie vzdáleného úložiště
V novém umístění vytvořme místní kopii s názvem project_local vzdáleného úložiště pomocí příkazu clone.
Poznámka: Pokud pracujete s GitHub nebo BitBucket, budete postupovat stejným způsobem při klonování úložiště. V takovém případě budete mít místo celé zde použité cesty k souboru odkaz SSH.
$ git clone / Users / zak / _work / LearnGIT / git_delete_branch / projekt.git project_localKlonování do 'project_local' ..
varování: Zdá se, že jste naklonovali prázdné úložiště.
Hotovo.
3. Vytváření větví uvnitř místní kopie
Nejprve přidáme soubor do lokální kopie a poté jej přeneseme do vzdáleného úložiště:
$ cd project_local$ touch ReadMe.txt
$ git přidat -A
$ git commit -m "Inicializace modulu"
[master (root-commit) 81eb2a3] Inicializace modulu
1 soubor změněn, 0 vložení (+), 0 odstranění (-)
vytvořit režim 100644 ReadMe.txt
$ git push origin master
Počítání objektů: 3, hotovo.
Psaní objektů: 100% (3/3), 221 bajtů | 0 bajtů / s, hotovo.
Celkem 3 (delta 0), znovu použito 0 (delta 0)
Komu / Uživatelé / zak / _work / LearnGIT / git_delete_branch / projekt.sakra
* [nová větev] pán -> pán
Ve výše uvedených příkazech jsme vytvořili soubor s názvem ReadMe.txt, přidal jej do místní kopie, přidělil ji místní kopii a poté provedl změny do vzdáleného úložiště nebo hlavní větve původu.
Pokud zkontrolujete větve, uvidíte hlavní větev v místní kopii:
$ git větev* mistr
Pokud zaškrtnete vzdálené větve, uvidíte zde také hlavní větev:
$ git větev -rpůvod / pán
Tip: Pomocí možnosti '-a' můžete zobrazit všechny pobočky v lokálních i vzdálených úložištích společně.
$ git větev -a* mistr
dálkové ovladače / původ / master
Vytvořme dvě větve zvané b1 a b2 z hlavní větve:
$ git větev b1$ git větev b2
Pojďme zkontrolovat, zda byly vytvořeny větve:
$ git větevb1
b2
* mistr
Nyní provedeme některé úpravy větví:
$ git pokladna b1Přepnuto na větev „b1“
$ touch větev 1.txt
$ git přidat -A
$ git commit -m "Modifikace větve 1"
[b1 a2f488e] Modifikace větve 1
1 soubor změněn, 0 vložení (+), 0 odstranění (-)
vytvořit režim 100644 branch1.txt
$ git pokladna b2
Přepnuto na větev „b2“
$ touch větev2.txt
$ git přidat -A
$ git commit -m "Modifikace větve 2"
[b2 2abb723] Modifikace větve 2
1 soubor změněn, 0 vložení (+), 0 odstranění (-)
vytvořit režim 100644 branch2.txt
Podívejme se na stav místní a vzdálené větve:
$ git větevb1
* b2
mistr
$ git větev -r
původ / pán
Vidíme místně, že máme tři větve master, b1 a b2. Ve vzdáleném úložišti však máme pouze hlavní větev.
4. Posouvání poboček do vzdáleného úložiště
Pojďme posunout větev b1 do vzdáleného úložiště:
$ git push origin b1Počítání objektů: 2, hotovo.
Delta komprese pomocí až 4 vláken.
Komprese objektů: 100% (2/2), hotovo.
Psaní objektů: 100% (2/2), 249 bajtů | 0 bajtů / s, hotovo.
Celkem 2 (delta 0), znovu použito 0 (delta 0)
Komu / Uživatelé / zakh / _work / LearnGIT / git_delete_branch / projekt.sakra
* [nová větev] b1 -> b1
Můžete zkontrolovat stav místní a vzdálené pobočky:
$ git větevb1
* b2
mistr
$ git větev -r
původ / b1
původ / pán
Z výše uvedených stavů větví vidíme, že větev b1 je k dispozici také na dálku.
5. Lokální mazání poboček
Pobočky můžete lokálně odstranit pomocí volby -d nebo -D.
git větev -dNejprve se podívejme do hlavní větve, abychom mohli odstranit větve b1 a b2.
$ git pokladna masterPřepnuto na větev „master“
Vaše pobočka je aktuální s „origin / master“.
Vyzkoušejte nejprve volbu -d k odstranění větve b1:
$ git větev -d b1chyba: Větev 'b1' není plně sloučena.
Pokud jste si jisti, že jej chcete smazat, spusťte 'git branch -D b1'.
Chyba vám říká, že musíte sloučit změny z větve b1. Jedná se o záruku, abyste omylem neztratili práci na pobočkách. Pomocí volby -D můžete vynutit odstranění sloučení. Ale v tomto případě pojďme sloučit změny z b1 a b2 do hlavního a poslat je do vzdáleného úložiště.
$ git merge b1Aktualizace 81eb2a3… a2f488e
Rychle vpřed
větev1.txt | 0
1 soubor změněn, 0 vložení (+), 0 odstranění (-)
vytvořit režim 100644 branch1.txt
$ git merge b2
Sloučení provedené „rekurzivní“ strategií.
větev2.txt | 0
1 soubor změněn, 0 vložení (+), 0 odstranění (-)
vytvořit režim 100644 branch2.txt
$ git push origin master
Počítání objektů: 4, hotovo.
Delta komprese pomocí až 4 vláken.
Komprese objektů: 100% (4/4), hotovo.
Psaní objektů: 100% (4/4), 454 bajtů | 0 bajtů / s, hotovo.
Celkem 4 (delta 1), znovu použito 0 (delta 0)
Komu / Uživatelé / zak / _work / LearnGIT / git_delete_branch / projekt.sakra
81eb2a3… 34db496 hlavní -> hlavní
Nyní zkuste znovu odstranit větve:
$ git větevb1
b2
* mistr
$ git větev -d b1
Odstraněná větev b1 (byla a2f488e).
$ git větev -d b2
Odstraněná větev b2 (byla 2abb723).
$ git větev
* mistr
Úspěšně jste lokálně odstranili větve b1 a b2.
6. Odstranění vzdálených poboček
Když zkontrolujete vzdálené větve, stále se zobrazí b1:
$ git větev -rpůvod / b1
původ / pán
Ke smazání vzdálené větve můžete použít následující příkaz:
git pushVzdálenou větev b1 tedy můžete odstranit následujícím způsobem:
$ git push origin - odstranit b1Komu / Uživatelé / zakh_eecs / _work / LearnGIT / git_delete_branch / projekt.sakra
- [smazáno] b1
Pokud nyní zkontrolujete vzdálené pobočky, neměli byste již vidět b1:
$ git větev -rpůvod / pán
Gratulujeme! Úspěšně jste odstranili všechny pobočky, které jste vytvořili. Procvičte si vytváření více větví a jejich mazání, abyste zvládli proces mazání větví Git.
Další studie:
- https: // git-scm.com / book / en / v1 / Git-Branching-What-a-Branch-Is
- https: // git-scm.com / book / en / v2 / Git-Branching-Branches-in-a-Nutshell
- https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging