Jak smazat pobočku v Git lokálně a vzdáleně

Klíčové věci

  • Odstranění větví je důležitou součástí typického pracovního postupu Git.
  • Lokální větev můžete odstranit pomocí příkazu „git branch -d [branchname]“, ale buďte opatrní na nesloučené změny.
  • Různé nástroje jako GitHub Desktop, GitKraken, Tower a Bitbucket mají své vlastní metody pro mazání větví, takže se seznamte se specifickým procesem pro každý nástroj.

Větve Git jsou tak lehké, že je snadné je vytvořit, kdykoli potřebujete. Ale je také snadné skončit se zbytky větví, které již nepotřebujete. Co tedy obnáší smazání větve?

Proč smazat pobočku?

Za prvé, pokud se stále učíte, jak strukturovat projekt pomocí větví git, je docela velká šance, že vytvoříte větev a pak se rozhodnete, že to nepotřebujete. To je v pořádku, protože větvení je nenáročná operace; je velmi rychlý a efektivně využívá místo na disku.

Výsledkem je, že mnoho pracovních postupů pro vývoj git podporuje větvení, a to i pro velmi malé nebo krátké úkoly. Běžnou strategií je například vytvoření samostatné větve pro každou opravu chyby.

Mazání větví by mělo být součástí vašeho každodenního pracovního postupu stejně jako jejich vytváření.

Ukázkové úložiště s pobočkami

Níže uvedené příklady odkazují na vzorové úložiště s následující strukturou:

Všimněte si, že repo má dvě větve: hlavní a dev. Každá z těchto lokálních poboček je sledovací větev s odpovídající upstream větví na vzdáleném serveru (origin).

Je snadné ztratit přehled o větvích, takže se ujistěte, že víte, jak vypsat větve git z příkazového řádku nebo je zobrazit ve vašem preferovaném klientovi.

Odstranění větve pomocí příkazového řádku

Základní syntaxe příkazu pro smazání větve je:

 git branch (-d | -D) [-r] <branchname>... 

Jak smazat místní pobočku

Nejjednodušší forma příkazu odstraní místní větev za předpokladu, že všechny její změny byly sloučeny:

 git branch -d dev 

Až bude vše v pořádku, zobrazí se potvrzovací zpráva:

Nemůžete odstranit větev, která je aktuálně aktivní; pokud se o to pokusíte, dostanete zprávu jako tato:

Pokud odstraníte místní větev s nesloučenými a neodeslanými změnami, o tyto změny přijdete. Proto git ve výchozím nastavení odmítne takovou větev smazat. V tomto příkladu má dev nesloučené změny, které nebyly přeneseny do vzdálené větve:

Jak říká chybová zpráva, můžete vynutit odstranění pomocí parametru -D.

Lokální sledovací větev můžete odstranit, pokud je její odpovídající vzdálená větev aktuální, i když není sloučená. Git bude stále zobrazovat varování, takže víte, co se stalo:

Jak odstranit vzdálenou pobočku

Smazání vzdálené větve je docela jiné. K odstranění použijete příkaz git push spolu s parametrem -d. Poté zadejte název vzdáleného (často původu) a název pobočky:

Odstranění místních a vzdálených poboček pomocí GitHub Desktop

Na rozdíl od programu git příkazového řádku, Desktopová aplikace GitHub pouze vám umožní smazat aktivní větev. Tuto akci můžete provést prostřednictvím nabídky Větve, výběrem možnosti Smazat a jejím potvrzením:

GitHub Desktop vám nedovolí smazat výchozí větev – např. hlavní – i když to samotný git podporuje. Pokud je výchozí větev ta, která je aktuálně aktivní, aplikace akci nabídky zakáže.

Pokud větev představuje také vzdálenou větev, GitHub Desktop dává možnost ji smazat i ze vzdálené:

Odstranění větví pomocí GitKraken

GitKraken zobrazí místní a vzdálené pobočky vašeho úložiště v levém postranním panelu. Musíte odstranit každý zvlášť.

Umístěte ukazatel myši na název příslušné větve a klikněte na nabídku Akce větve, která vypadá jako tři svislé tečky. Z nabídky vyberte Odstranit :

Zobrazí se potvrzovací zpráva, která vás informuje, že se jedná o destruktivní operaci. Chcete-li pokračovat, můžete potvrdit tlačítkem Smazat:

Vzhledem k výchozímu chování programu příkazového řádku git se musíte nejprve přepnout na jinou větev, než je ta, kterou odstraňujete. V opačném případě se zobrazí chybová zpráva:

Odstranění místních a vzdálených poboček pomocí věže

Odstranění větve s Věž je velmi podobné smazání větve pomocí GitKraken. Aplikace zobrazuje místní a vzdálené pobočky v panelu na levé straně. Klikněte pravým tlačítkem na libovolnou větev a z kontextové nabídky vyberte možnost Odstranit:

Jedním z klíčových rozdílů je, že během potvrzení můžete odstranit vzdálenou pobočku spolu s její místní pobočkou:

Smazání pobočky na GitHubu

GitHub funguje pouze jako vzdálený zdroj, takže tamní pobočky jsou ve výchozím nastavení vzdálené. Pokud odstraníte větev pomocí webu GitHub, budete muset odstranit odpovídající místní větev pomocí jedné z dalších metod zde.

Stejně jako u aplikace GitHub Desktop vám web GitHub nedovolí smazat výchozí větev. Pokud to zkusíte, zobrazí se chybová zpráva:

Smazání jakékoli jiné větve je však jednoduché. Na kódové stránce úložiště klikněte na odkaz větve, vyhledejte větev, kterou chcete odstranit, a poté klikněte na ikonu Odstranit větev, která vypadá jako odpadkový koš:

Uvědomte si, že neexistují žádné kontroly nesloučených změn, takže GitHub jednoduše větev okamžitě smaže. Protože však bude vždy představovat vzdálenou pobočku, mělo by toto chování dávat smysl.

Všimněte si, že po smazání se zobrazí tlačítko pro obnovení větve. Jedná se však pouze o užitečnou funkci vrácení zpět, pro případ, že byste omylem klepli na ikonu odstranění. Nespoléhejte na to, protože jakmile stránku obnovíte nebo ji opustíte, o tuto možnost přijdete!

Odstranění místních a vzdálených poboček na Bitbucket

Bitbucket, stejně jako GitHub, nedovolí smazat výchozí větev. Bitbucket to nazývá hlavní větev v nastavení úložiště. Jakoukoli další větev uvedenou na kartě Větve můžete smazat prostřednictvím příslušné nabídky Akce:

Pokud provádíte velké čištění, můžete také odstranit více než jednu větev najednou:

Odstranění větví je součástí typického pracovního postupu Git

Větve Git mohou zkomplikovat váš pracovní postup, zejména ten s místními, vzdálenými a sledovacími větvemi. Ale pro jednoduchý každodenní vývoj budete pravděpodobně neustále vytvářet a mazat místní pobočky. Toto je základní aspekt typického pracovního postupu git, na který byste si měli zvyknout.

Pokud je pro vás obtížné zapamatovat si, jak přesně odstranit větev, zvažte nastavení aliasů pro odstranění větví a jednoduše celý proces.