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

Důležité body

  • Odstraňování větví je nedílnou součástí běžného pracovního postupu v Gitu.
  • Pro odstranění lokální větve slouží příkaz „git branch -d [název_větve]“, je však potřeba dbát na nesloučené změny.
  • Různé nástroje, jako GitHub Desktop, GitKraken, Tower a Bitbucket, nabízejí vlastní postupy pro odstraňování větví, proto je vhodné se s nimi seznámit.

Větve v Gitu jsou velmi flexibilní a snadno se vytvářejí, což může vést k hromadění větví, které již nejsou potřeba. Jak tedy probíhá proces odstraňování větve?

Proč odstraňovat větve?

Pokud se teprve učíte pracovat s větvemi v Gitu, je běžné, že vytvoříte větev a později zjistíte, že ji nepotřebujete. To je zcela v pořádku, protože větvení je nenáročná operace. Je rychlé a efektivní z hlediska využití diskového prostoru.

Díky tomu mnoho vývojových postupů v Gitu podporuje větvení i pro malé nebo krátkodobé úkoly. Například, je běžné vytvářet samostatnou větev pro každou opravu chyby.

Odstraňová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 větvemi

Následující příklady vycházejí z modelového úložiště s touto strukturou:

Úložiště má dvě větve: hlavní (main) a vývojovou (dev). Obě lokální větve sledují odpovídající vzdálené větve (origin) na serveru.

Je snadné ztratit přehled o větvích, proto je důležité umět si je vypsat z příkazové řádky nebo zobrazit v preferovaném klientovi.

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

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

git branch (-d | -D) [-r] <název_větve>...

Jak smazat lokální větev

Nejjednodušší forma příkazu smaže lokální větev, pokud všechny její změny byly sloučeny:

git branch -d dev

Po úspěšném provedení se zobrazí potvrzovací zpráva:

Nelze odstranit větev, která je aktuálně aktivní. Pokud se o to pokusíte, zobrazí se chybová zpráva:

Pokud odstraníte lokální větev s nesloučenými a neodeslanými změnami, dojde ke ztrátě těchto změn. Proto Git ve výchozím nastavení odmítne takovou větev smazat. V tomto příkladu má větev „dev“ nesloučené změny, které nebyly odeslány do vzdálené větve:

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

Lokální sledovací větev můžete odstranit i v případě, že její vzdálená větev je aktuální, i když nebyla sloučena. Git stále zobrazí varování, abyste věděli, co se stalo:

Jak odstranit vzdálenou větev

Smazání vzdálené větve probíhá jinak. Použijete příkaz git push s parametrem -d, následovaný názvem vzdáleného úložiště (často „origin“) a názvem větve:

Odstranění lokálních a vzdálených větví pomocí GitHub Desktop

Na rozdíl od příkazové řádky Gitu, aplikace GitHub Desktop umožňuje smazat pouze neaktivní větev. Můžete to udělat v nabídce „Větev“, vybrat možnost „Smazat“ a potvrdit:

GitHub Desktop neumožňuje smazat výchozí větev (např. „main“), i když samotný Git to podporuje. Pokud je výchozí větev aktuálně aktivní, aplikace tuto možnost zakáže.

Pokud větev představuje také vzdálenou větev, GitHub Desktop nabídne možnost smazat ji i ze vzdáleného úložiště:

Odstranění větví pomocí GitKraken

GitKraken zobrazuje lokální a vzdálené větve v levém postranním panelu. Musíte odstranit každou zvlášť.

Umístěte kurzor 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 upozorní, že jde o destruktivní operaci. Chcete-li pokračovat, potvrďte tlačítkem „Smazat“:

Stejně jako u příkazové řádky Gitu, musíte nejprve přepnout na jinou větev, než tu, kterou chcete odstranit. Jinak se zobrazí chybová zpráva:

Odstranění lokálních a vzdálených větví pomocí Tower

Odstranění větví pomocí Tower je podobné jako smazání pomocí GitKraken. Aplikace zobrazuje lokální a vzdálené větve v panelu na levé straně. Klikněte pravým tlačítkem myši na libovolnou větev a z kontextové nabídky vyberte „Odstranit“:

Klíčový rozdíl je, že během potvrzení můžete odstranit vzdálenou větev spolu s její lokální verzí:

Smazání větve na GitHubu

GitHub funguje pouze jako vzdálený zdroj, takže větve na něm jsou implicitně vzdálené. Pokud odstraníte větev pomocí webu GitHub, musíte smazat odpovídající lokální větev pomocí jedné z dalších zde popsaných metod.

Stejně jako aplikace GitHub Desktop, ani web GitHub neumožňuje smazat výchozí větev. Pokud se o to pokusíte, zobrazí se chybová zpráva:

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

Upozorňujeme, že zde nejsou prováděny žádné kontroly nesloučených změn, GitHub větev jednoduše okamžitě smaže. Vzhledem k tomu, že se jedná o vzdálenou větev, by toto chování mělo dávat smysl.

Všimněte si, že po smazání se objeví tlačítko pro obnovení větve. Jedná se pouze o funkci pro vrácení zpět v případě, že jste omylem klikli na ikonu odstranění. Nespoléhejte na ni, protože jakmile stránku aktualizujete nebo opustíte, o tuto možnost přijdete!

Odstranění lokálních a vzdálených větví na Bitbucket

Bitbucket, stejně jako GitHub, neumožňuje smazat výchozí větev, kterou v nastavení úložiště nazývá „hlavní větev“. Jakoukoli jinou větev uvedenou na kartě „Větve“ můžete smazat pomocí nabídky „Akce“:

Pokud provádíte větší úklid, můžete odstranit i více větví najednou:

Odstranění větví je součástí běžného pracovního postupu v Gitu

Větve v Gitu mohou zkomplikovat váš pracovní postup, zvláště v kontextu lokálních, vzdálených a sledovacích větví. Pro běžný vývoj budete však pravděpodobně neustále vytvářet a mazat lokální větve. To je zásadní aspekt běžného pracovního postupu v Gitu, na který byste si měli zvyknout.

Pokud je pro vás obtížné zapamatovat si přesný postup odstraňování větví, zvažte nastavení aliasů pro tyto operace, což celý proces zjednoduší.