Git
Chapters ▾ 2nd Edition

3.3 Gałęzie Gita - Zarządzanie gałęziami

Zarządzanie gałęziami

Teraz kiedy już stworzyłeś, scaliłeś i usunąłeś kilka gałęzi, popatrzmy na pewne narzędzia, które przydadzą się, kiedy zaczniesz rutynowo używać gałęzi.

Komenda git branch ma więcej zastosowań niż tylko tworzenie i usuwanie gałęzi. Jeśli uruchomisz ją bez argumentów, otrzymasz prostą listę aktualnych gałęzi:

$ git branch
  iss53
* master
  testing

Zwróć uwagę na symbol * poprzedzający master: oznacza on aktywną gałąź (czyli gałąź, na którą wskazuje HEAD). Oznacza to, że jeśli na tym etapie dodasz nową rewizję, gałąź master przesunie się do przodu o twoje nowe zmiany. Aby zobaczyć ostatnie rewizje na poszczególnych gałęziach, możesz użyć polecenia git branch -v:

$ git branch -v
  iss53   93b412c fix javascript issue
* master  7a98805 Merge branch 'iss53'
  testing 782fd34 add scott to the author list in the readmes

Opcje --merged i --no-merged potrafią przefiltrować tę listę do tylko tych gałezi, które już zostały lub jeszcze nie zostały przez ciebie scalone z aktywną. Aby zobaczyć, które gałęzie są już scalone z aktywną, użyć git branch --merged:

$ git branch --merged
  iss53
* master

Przez to, że gałąź iss53 została już wcześniej scalona, pojawia się ona na liście. Gałęzie bez * przed nazwą na powyższej liście można zazwyczaj bezpiecznie usunąć poleceniem git branch -d; scaliłeś już przecież ich zmiany z inną gałęzią, więc nic nie utracisz.

Aby wyświetlić gałęzie zawierające zmiany, których jeszcze nie scaliłeś, użyj git branch --no-merged:

$ git branch --no-merged
  testing

Wynikiem jest pozostała gałąź. Ponieważ gałąź testing zawiara zmiany, których jeszcze nie scaliłeś, próba usunięcia jej komendą git branch -d zawiedzie:

$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.

Jeśli na pewno chcesz usunąć daną gałąź i stracić wprowadzane przez nią zmiany, możesz wymusić to opcją -D, tak jak podpowiada wskazówka.