git tutorial – część 2 – tworzymy branch

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

Komentarze (RSS)
Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.

7 komentarzy

  1. bies 6 lipca 2009 o godz. 14:33 #

    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).

  2. el_es 6 lipca 2009 o godz. 19:44 #

    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…

  3. Ponton 9 lipca 2009 o godz. 2:03 #

    Pisałeś ten artykuł na kolanie? Spieszyło Ci się gdzieś, że nie poprawiłeś literówek i innych błędów?

  4. Moro 9 lipca 2009 o godz. 16:30 #

    "(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.

  5. P2O2 19 lipca 2009 o godz. 1:41 #

    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

  6. reecon 28 grudnia 2011 o godz. 14:11 #

    Te artykuly tutaj to jest jakas parodia. Nie ma nic ciekawego a wszystko wyglada jak pisanie na kolanie.

    • sirmacik 30 grudnia 2011 o godz. 22:55 #

      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.

(wymagane)
URI
Uwaga! Niektóre komentarze, m.in. te dodane przez niezalogowanych i nowych użytkowników, są ręcznie moderowane. Jeśli Twój komentarz nie ukaże się od razu, nie dodawaj go ponownie, tylko cierpliwie poczekaj na akceptację.

Literówki najlepiej zgłaszać jabberem: michuk@jakilinux.org lub kocio@jabber.org!

W komentarzach możesz używać prostych znaczników HTML. Przykłady:
  • Link: <a href="jaklinux.org">Linux dla każdego</a>,
  • Wytłuszczenie: <strong>tekst pogrubiony</strong>,
  • Kursywa: <em>tekst pochylony</em>,
  • Przekreślenie: <del>tekst przekreślony</del>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.