Jak usunąć gałąź git

Jak usunąć gałąź git
Tworzenie gałęzi w git jest łatwe. Jest uważany za jedną z najlepszych funkcji Git. Jednak ze względu na obecność odległych i lokalnych repozytoriów usunięcie gałęzi może stać się nieco mylące.

W tej lekcji zrobimy następujące czynności:

  • Utwórz zdalne repozytorium
  • Utwórz lokalną kopię zdalnego repozytorium
  • Utwórz dwie oddziały w lokalnej kopii
  • Przesuń jedną gałąź do zdalnego repozytorium
  • Usuń lokalne oddziały
  • Usuń zdalne gałęzie

Lekcja powinna zapewnić ogólne zrozumienie procesu tworzenia i usunięcia gałęzi, więc masz dobre polecenie w stosunku do niezbędnych kroków, gdy musisz usunąć lokalną lub zdalną gałęznę.

Zacznijmy.

1. Tworzenie zdalnego repozytorium

Utwórzmy folder o nazwie Project.git i inicjuj jako zdalne repozytorium:

Projekt $ mkdir.git
$ CD Project.git
$ git init -Bare

Zainicjowane puste repozytorium Git/Users/Zak/_Work/Learngit/git_delete_branch/projekt.git/

2. Tworzenie lokalnej kopii zdalnego repozytorium

W nowej lokalizacji utwórzmy lokalną kopię o nazwie projekt_local zdalnego repozytorium za pomocą polecenia klonu.

Uwaga: Jeśli pracujesz z GitHub lub Bitbucket, będziesz postępować zgodnie z tym samym procesem, aby sklonować repozytorium. W takim przypadku będziesz mieć link SSH zamiast pełnej ścieżki pliku używanej tutaj.

$ git Clone/Users/Zak/_Work/Learngit/git_delete_branch/projekt.Git Project_Local
Klonowanie do „Project_Local”…
OSTRZEŻENIE: Wygląda na to, że sklonowałeś puste repozytorium.
zrobione.

3. Tworzenie gałęzi wewnątrz lokalnej kopii

Najpierw dodajmy plik do lokalnej kopii, a następnie naciśnij go do zdalnego repozytorium:

$ CD Project_Local
$ Touch Readme.tekst
$ git add -a
$ git commit -m „Inicjowanie modułu”
[Master (root-commit) 81EB2A3] inicjowanie modułu
1 Zmieniony plik, 0 wstawek (+), 0 delecji (-)
Utwórz tryb 100644 README.tekst
$ git push pochodzenie mistrz
Liczenie obiektów: 3, gotowe.
Pisanie obiektów: 100% (3/3), 221 bajtów | 0 bajtów/s, gotowe.
Razem 3 (Delta 0), ponownie użyty 0 (Delta 0)
To/Users/Zak/_Work/Learngit/git_delete_branch/projekt.git
* [Nowa gałąź] Master -> Master

W powyższych poleceniach utworzyliśmy plik o nazwie README.TXT, dodał go do kopii lokalnej, oddał go do kopii lokalnej, a następnie popchnął zmiany do zdalnego repozytorium lub głównego oddziału Origin.

Jeśli sprawdzisz gałęzie, zobaczysz gałąź główną w lokalnej kopii:

$ git oddział
* gospodarz

Jeśli sprawdzisz zdalne gałęzie, zobaczysz tam również gałąź główną:

$ git oddział -r
Origin/Master

Wskazówka: możesz użyć opcji „-A”, aby razem zobaczyć wszystkie oddziały w lokalnych i zdalnych repozytoriach.

$ git oddział -a
* gospodarz
Remotes/Origin/Master

Utwórzmy dwie gałęzie o nazwie B1 i B2 z gałęzi głównej:

$ git oddział B1
$ git oddział B2

Sprawdźmy, czy gałęzie zostały utworzone:

$ git oddział
B1
B2
* gospodarz

Teraz zamierzamy wprowadzić pewne modyfikacje gałęzi:

$ git kector B1
Przełączony na gałąź „B1”
$ Touch Branch1.tekst
$ git add -a
$ git commit -m „modyfikacja oddziału”
[B1 A2F488E] Modyfikacja Branch1
1 Zmieniony plik, 0 wstawek (+), 0 delecji (-)
Utwórz tryb 100644 Branch1.tekst
$ git kector B2
Przełączony na gałąź „B2”
$ Touch Branch2.tekst
$ git add -a
$ git commit -m „modyfikacja oddziału”
[B2 2ABB723] Modyfikacja Branch2
1 Zmieniony plik, 0 wstawek (+), 0 delecji (-)
Utwórz tryb 100644 Branch2.tekst

Sprawdźmy lokalne i zdalne statusy oddziału:

$ git oddział
B1
* B2
gospodarz
$ git oddział -r
Origin/Master

Możemy zobaczyć lokalnie trzy gałęzie Master, B1 i B2. Ale mamy tylko gałąź główną w zdalnym repozytorium.

4. Pchanie gałęzi do zdalnego repozytorium

Pchnijmy gałąź B1 do zdalnego repozytorium:

$ git push pochodzenie b1
Liczenie obiektów: 2, gotowe.
Kompresja delta za pomocą maksymalnie 4 wątków.
Kompresujące obiekty: 100% (2/2), gotowe.
Pisanie obiektów: 100% (2/2), 249 bajtów | 0 bajtów/s, gotowe.
Razem 2 (Delta 0), ponownie użyty 0 (Delta 0)
To/Users/Zakh/_Work/Learngit/git_delete_branch/projekt.git
* [Nowa gałąź] B1 -> B1

Możesz sprawdzić lokalne i zdalne statusy oddziału:

$ git oddział
B1
* B2
gospodarz
$ git oddział -r
pochodzenie/B1
Origin/Master

Z powyższych statusów gałęzi widać, że gałąź B1 jest również dostępna zdalnie.

5. Usuwanie gałęzi lokalnie

Możesz usunąć gałęzie lokalnie za pomocą opcji -d lub -d.

git gałąź -d

Najpierw sprawdźmy w gałęzi głównej, abyśmy mogli usunąć gałęzie B1 i B2.

$ git kectout Master
Przełączony na „mistrz” oddziału
Twoja gałąź jest aktualna z „Origin/Master”.

Wypróbujmy opcję -D, aby usunąć gałąź B1:

$ git oddział -d b1
Błąd: gałąź „B1” nie jest w pełni scalona.
Jeśli jesteś pewien, że chcesz go usunąć, uruchom „git gałąź -d b1”.

Błąd mówi ci, że musisz połączyć zmiany z gałęzi B1. To jest zabezpieczenie, więc nie błędnie tracisz pracę nad gałęziami. Możesz użyć opcji -D, aby wymusić usunięcie scalania. Ale w tym przypadku połączmy zmiany z B1 i B2 w Master i wepchnij je do zdalnego repozytorium.

$ git merge b1
Aktualizacja 81EB2A3… A2F488E
Szybkie do przodu
Branch1.txt | 0
1 Zmieniony plik, 0 wstawek (+), 0 delecji (-)
Utwórz tryb 100644 Branch1.tekst
$ git merge b2
Scalone przez strategię „rekurencyjną”.
Branch2.txt | 0
1 Zmieniony plik, 0 wstawek (+), 0 delecji (-)
Utwórz tryb 100644 Branch2.tekst
$ git push pochodzenie mistrz
Liczenie obiektów: 4, gotowe.
Kompresja delta za pomocą maksymalnie 4 wątków.
Kompresujące obiekty: 100% (4/4), gotowe.
Pisanie obiektów: 100% (4/4), 454 bajtów | 0 bajtów/s, gotowe.
Ogółem 4 (Delta 1), ponownie użyty 0 (Delta 0)
To/Users/Zak/_Work/Learngit/git_delete_branch/projekt.git
81EB2A3… 34DB496 Master -> Master

Teraz spróbuj ponownie usunąć gałęzie:

$ git oddział
B1
B2
* gospodarz
$ git oddział -d b1
Usunięta gałąź B1 (A2F488E).
$ git oddział -d b2
Usunięta gałąź B2 (2ABB723).
$ git oddział
* gospodarz

Z powodzeniem usunąłeś gałęzie B1 i B2 lokalnie.

6. Usuwanie zdalnych gałęzi

Po sprawdzeniu zdalnych gałęzi nadal widać B1 Present:

$ git oddział -r
pochodzenie/B1
Origin/Master

Możesz użyć następującego polecenia, aby usunąć zdalną gałąź:

Git Push --usuwać

Dzięki czemu możesz usunąć gałąź zdalnego B1 z następującymi:

$ git push pochodzenie - -delete B1
To/Users/Zakh_Eecs/_Work/Learngit/git_delete_branch/projekt.git
- [usunięty] B1

Teraz, jeśli sprawdzisz swoje zdalne gałęzie, nie powinieneś już widzieć B1:

$ git oddział -r
Origin/Master

Gratulacje! Pomyślnie usunąłeś wszystkie stworzone gałęzie. Ćwicz tworzenie większej liczby gałęzi i usuwanie ich w celu opanowania procesu usuwania gałęzi GIT.

Dalsze badanie:

  • https: // git-scm.com/book/en/v1/git-branching-co-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 Banching and Merging