GIT

Z Kadu

GIT

Spis treści

Pobranie najnowszego kodu Kadu przez GIT

Aby pobrać eksperymentalną, aktywnie rozwijaną wersję Kadu z GIT w konsoli piszemy:

git clone git://gitorious.org/kadu/kadu.git
cd kadu
git submodule init
git submodule update

Proces instalacji Kadu ze źródeł opisany jest w odrębnym artykule: Instalacja ze źródeł.

Aby uaktualnić nasze lokalne repozytorium wykonujemy:

git pull
git submodule update


Praca nad kodem Kadu z użyciem GITa

Rejestrujemy się na http://www.gitorious.org.

Klonujemy repozytorium Kadu (http://gitorious.org/kadu) poprzez "Clone this repositorium on Gitorious"


Gitorious identyfikuje użytkownika za pomocą kluczy kryptograficznych.

Musimy więc wkleić nasz publiczny klucz w opcjach naszego konta na stronie https://secure.gitorious.org/~UŻYTKOWNIK/keys.

Klucz znajduje się w pliku ~/.ssh/id_rsa.pub lub ~/.ssh/id_dsa.pub.

Jeśli nie mamy jeszcze wygenerowanej własnej pary kluczy, to robimy to poleceniem:

ssh-keygen -t rsa -C "twój@email.com"

Hasło do klucza można pominąć, inaczej będziemy musieli je wstukiwać przy każdym połączeniu z Gitoriousem.


Teraz możemy już pobrać naszego klona na dysk:

git clone git@gitorious.org:~UŻYTKOWNIK/kadu/NAZWA_NASZEGO_KLONA.git

Powyższy link dostępny jest także na stronie naszego klona.

cd NAZWA_NASZEGO_KLONA

Aby być na bieżąco ze zmianami w Kadu wywołujemy w katalogu z naszym klonem następujące komendy:

git remote add upstream git://gitorious.org/kadu/kadu.git

Kiedy wykonamy powyższe czynności mamy już gotowe pole do pracy.

System pracy polega na tym, że zmiany robimy w swoim klonie, a potem prosimy o ich połączenie z główną gałęzią Kadu.


Przed rozpoczęciem pracy zawsze uaktualniamy naszego klona poprzez:

git fetch --tags upstream
git pull --rebase upstream master
git push

Ostatnie polecenie wysyła zmiany do naszego klona na Gitoriousie.


Aby zachować porządek w głównej gałęzi wszelkie zmiany robimy w osobnych branchach. Nowego brancha tworzymy poprzez:

git branch NASZ_BRANCH

A następnie przenosimy się do danego brancha:

git checkout NASZ_BRANCH

Powyższe dwa polecenia można zastąpić jednym:

git checkout -b NASZ_BRANCH

W tym miejscu wprowadzamy zmiany w kodzie Kadu.

Następnie poprzez komendę

git status

oglądamy jakie pliki uległy zmianom i jeszcze nie są w żadnym commicie.

Dodajemy pliki do commita:

git commit -a -m "OPIS COMMITA"

Parametr "-a" dodaje wszystkie pliki. Pominięcie parametru "-m" spowoduje otwarcie zdefiniowanego edytora tekstowego, w którym będziemy mogli wygodnie wpisać opis commita. Możemy również podpisać commit cyfrowo poprzez dodanie przełącznika -s.

Po wprowadzeniu wszystkich zmian wysyłamy brancha na serwer Gitorious:

git push origin NASZ_BRANCH

A następnie wysyłamy Merge Request do repozytorium Kadu na Gitorious.


Pobranie i uaktualnienie repozytoriów potrzebnych do skompilowania i uruchomienia niektórych modułów wykonujemy poprzez:

git submodule init
git submodule update

Inicjalizację ("init") wykonujemy tylko raz, a "update" zawsze, gdy chcemy zaktualizować zawartość.


Poradnik GIT

Łączenie wielu commitów w jeden

Jeśli w naszym branchu mamy wiele commitów, a chcielibyśmy utworzyć z nich jeden, możemy to zrobić następująco:

$ git checkout NASZ_BRANCH
$ git rebase -i HEAD~X

Za X podstawiamy liczbę większą lub równą ilości naszych commitów, np.:

$ git rebase -i HEAD~5

Pojawi się edytor nano, w którym przy każdym commicie będzie widniało słowo "pick", np.:

pick 01234567 Commit A
pick 3456789a Commit B
pick 56789abc Nasz commit 1
pick 789abcde Nasz commit 2
pick 9abcdef0 Nasz commit 3

Odnajdujemy nasz pierwszy commit i zostawiamy przy nim "pick", ale przy kolejnych naszych commitach zamieniamy "pick" na "s" lub "squash":

pick 01234567 Commit A
pick 3456789a Commit B
pick 56789abc Nasz commit 1
s 789abcde Nasz commit 2
s 9abcdef0 Nasz commit 3

Wychodzimy z edytora (Ctrl+X) i zapisujemy zmiany (y, Enter).

Pojawi się kolejny edytor, w którym będziemy mogli zdefiniować nowy komentarz dla nowego zbiorczego commita. Komentarzem będą wszystkie niezahashowane (#) linie. Usuwamy stare linie (Ctrl+K) i wpisujemy nowy komentarz. Następnie zamykamy edytor (Ctrl+X) i zapisujemy zmiany (y, Enter).

Teraz wystarczy wysłać zmiany do zdalnego repozytorium:

$ git push origin NASZ_BRANCH

Jeśli wysłaliśmy już nasze poprzednie commity na serwer, musimy wymusić zapis zmian:

$ git push -f origin NASZ_BRANCH

Teraz wszystkie nasze zmiany znajdują się w pojedynczym commicie i ładnie prezentują się w Merge Requeście ;)

Jeśli Merge Request zawierał poprzednie commity, TRZEBA go zedytować i wybrać nowy zbiorczy commit.


Zobacz także

Źródło „http://www.kadu.im/w/GIT

Osobiste