W pierwszej części tutoriala o systemie zarządzania wersjami git dowiedzieliście się o podstawowych komendach. Dziś druga część tutoriala, w której dowiecie się jak tworzyć brancze.
Rozproszone systemy kontroli wersji, przez swoją specyfikę, mają niejako wymuszone łatwe zarządzanie gałęziami oraz ich łączenie. Nie inaczej jest z gitem. Własną gałąź najprościej utworzyć tak:
git branch dev
I tym sposobem zrobiliśmy nową gałąź o nazwie dev. Teraz możemy się do niej przełączycz wydając polecenie:
git checkout dev
Możemy również cały proces zautomatyzować dodając do checkout parametr -b, dzięki czemu jednocześnie zostanie utworzona gałąź o odpowiedniej nazwie (bez wydawania polecenia branch) i zostaniemy do niej przeniesieni. Teraz edytujemy nasz projekt, commitujemy (inaczej git nie pozwoli na zmianę gałęzi (chyba, że dodacie odpowiednie parametry, o których możecie przeczytać tutaj), ew. zmiany przeniesie do docelowej gałęzi, jeżeli obecna wywodzi się z docelowej) i przełączamy się do gałęzi głównej (master) aby zobaczyć, że faktycznie w masterze nie ma tego co było w dev.
Jednak brancze nic nie znaczą, jeżeli nie da się ich połączyć. W gitcie służy do tego polecenie merge (wcześniej przechodzimy do gałęzi do której chcemy zmerdżować inną gałąź):
git merge dev
Jeżeli gałąź którą chcemy zmerdżować wywodzi się z tej, do której chcemy łączyć (a nie wprowadzaliśmy w niej żadnych zmian), wtedy przesuwane jest tylko oznaczenie gałęzi (nazywa się to fast-forward). Może się czasami zdarzyć, że trafił się nam konflikt, wtedy wystarczy wyedytować plik w którym się on znajduje (konkretne kawałki kodu są dobrze oznaczone) oraz commitować zmiany.
Oprócz możliwości łączenia gałęzi możemy jeszcze połączyć dwie gałęzie w jedną. Służy do tego polecenie rebase:
git rebase dev
Gałęzie przed wydaniem polecenia rebase:
B---C---D dev / A-----------E master
Oraz po:
A---B'--C'--D'--E master
Cała gałąź dev zostanie przepisana i wstawiona w inne miejsce. Nie są to dokładnie te same commity (choć jak się spojrzy przez diff to wyglądają tak samo), ale ze względu na inne ułożenie w gałęzi są z puktu widzenia gita troszeczkę inne.
To tyle z działu gałęzi. Jeżeli ktoś chce pogłębić swoją wiedzę to zapraszam do czytania dokumentacji. Jest bardzo prosto napisana i nie powinna sprawić nikomu problemu. Polecam również narzędzie gitk z parametrem –all, które jest świetnym, graficznym podglądem ułożenia gałęzi w projekcie.
Wiadomość źródłowa na blogu autora: git tutorial – część 2 – branch

JakiLinux
Brak jeszcze informacji o git cherry-pick. Przydaje się przy przenoszeniu poprawek z master do gałęzi stabilnej (takiej gałęzi zazwyczaj się nie łączy).
Chyba powinno cos zostac wspomniane o tym, czym sie rozni rebase od merge (Linus pisal o tym tutaj http://www.mail-archive.com/dri-devel@lists.sourc… w srodowisku rozproszonym…
Pisałeś ten artykuł na kolanie? Spieszyło Ci się gdzieś, że nie poprawiłeś literówek i innych błędów?
"(inaczej git nie pozwoli na zmianę gałęzi (chyba, że …"
Zagnieżdżanie nawiasów w nawiasach jest okropnym pomysłem. Do tego duża część tekstu jest w nawiasach. Nawiasy powinno się używać tylko czasami i powinien w nich się znaleźć możliwie krótki tekst.
O kurde!
Cenzura zadziałała w jakilinux.org. To pewnie z powodu tej propagowanej wolności GNU – "wolno Ci, ale na naszych warunkach".
Decyzja wyszła od Towarzysza Michuka, czy innego gównianego Komsomolca z frontu ideologocznego jakilinux.org?
To już nie można napisać, że Autor użył języka, który wywołuje wymioty w trakcie czytania?
Wkraczamy w Web 3.0 (Web 2.0 + cenzura)?
jakilinux,org powoli łąduje w krowim łajnie, widać tak jest bezpieczniej, tyłek nie zaboli.
Powodzenia.
P2O2
Te artykuly tutaj to jest jakas parodia. Nie ma nic ciekawego a wszystko wyglada jak pisanie na kolanie.
Mam nadzieję, że zauważyłeś starą datę artykułu oraz ostatnie komentarze datowane na 127 tygodni wstecz. Natomiast z przyjemnością zacznę publikować przygotowane przez Ciebie porządnie napisane i ciekawe artykuły. Zapraszam do współpracy.