Ajajaj, rzuciłam na pewniaka „nie znasz!”. A być może znasz, być może nie. Chodzi w skrócie o to, że mam dla Ciebie dwie proste, aczkolwiek bardzo praktyczne sztuczki, do których jest zdolny stary, nudny git checkout
. Przyznaję, ja nie byłam ich świadoma przez bardzo długi czas. Więc być może oświecę tym wpisem choć jedną osobę.
#1 W tyyył zwrot!
A więc misja brzmi następująco: POWRÓT DO POPRZEDNIEGO BRANCHA.
Przykład: Jesteś na masterze, potem na lecisz na swojego feature-brancha my-super-cool-branch
, ale chcesz wrócić z powrotem do mastera. Zazwyczaj napisałbyś po prostu git checkout master
. Od dzisiaj już nigdy więcej tego nie zrobisz.
Powrót do poprzedniej gałęzi najszybciej osiągnąć komendą:
git checkout -
W naszym przykładzie, będąc na my-super-cool-branch
, powyższa komenda przeniosłaby nas do gałęzi master
. Jeszcze raz użyta przeniosłaby nas z powrotem do my-super-cool-branch
. Ostatecznie pozwala na szybkie przełączanie się pomiędzy dwoma gałęziami.
#2 Złapać 5 srok za ogon.
Kolejne wyzwanie to WYSTRZELENIE NOWEJ GAŁĘZI „C” Z GAŁĘZI „B” SIEDZĄC NA GAŁĘZI „A”.
Uffff. Rozumiesz coś z tego?
W moim ostatnim projekcie miałam taką zasadę: każdy task to osobny, odpowiednio nazwany branch. Było to spoko z punktu widzenia PMa i porządku w jirze. Jednak często gęsto taski były tak bardzo drobiazgowe, że nielogiczne wydawało się dla mnie dzielenie niektórych funkcjonalności na 2 osobne branche. W konsekwencji, nawet niechcący robiłam dodatkowe zmiany na branchu, który totalnie nie powinien ich zawierać. Też tak masz?
Przykład: Jesteś na swoim branchu add-product-branch
. Przy okazji narobiłeś na nim sporo zmian niezwiązanych z funkcjonalnością dodawania produktów (powiedzmy do koszyka). W takiej sytuacji przychodzi nam z pomocą pewna komenda, która pozwala na szybkie wystrzelenie nowej gałęzi (powiedzmy remove-product-branch
) z mastera, kiedy aktualnie siedzimy sobie wygodnie na add-product-branch
.
git checkout -b <branch-name> <start-point>
<branch-name>
nie trzeba chyba wyjaśniać, to nasz remove-product-branch
ofkors
<start-point>
z kolei to nazwa źródłowego brancha (np. master
) albo id commita albo tag
To jak, przyznać się, kto znał te sztuczki, a kto nie?
Źródło: dzhavat.github.io, dokumentacja.