Podstawy gita i githuba
Git to open-sourcowy rozproszony system kontroli wersji, stworzony przez Linusa Torvaldsa jako narzędzie wspomagające rozwój jądra systemu Linux. Instalacja na Linuxie wymaga zainstalowania głównie git-core. W Fedorze wystarczy wydać w konsoli polecenie
yum install git-core git-gui git-doca w mandrivie lub magei
urpmi git-core git-gui git-docNa Windowsie wystarczy pobrać i zainstalować najnowszą wersję msgita. Aby pracować z gitem należy otworzyć terminal (Linux), uruchomić Git bash (Windows).
Podstawowa konfiguracja
Każdy commit powinien zawierać informację kto jest jego właścicielem. Skonfigurujmy teraz gita w ten sposób aby każdy zrobiony przez nas commit jednoznacznie nas identyfikował. Poniższe komendy ustawiają nasze imię i email.git config --global user.name "Twoje imię" git config --global user.email "twoj_email"Jeśli chcesz sprawdzić bieżące ustawienia wydaj polecenie
git config --listMożna skonfigurować domyślny edytor tekstu, który zostanie uruchomiony, gdy git będzie wymagał wprowadzenia jakiejś informacji tekstowej. Domyślnie git skorzysta z domyślnego edytora systemowego.
git config --global core.editor kwriteIstnieje możliwość wyświetlenia pomocy na temat określonego polecenia git np. poniżej wyświetlimy pomoc dla polecenia commit.
git commit --helpRozpoczniemy teraz właściwą pracę z git. Utwórz gdzieś na swoim dysku katalog z projektem np. projekt1git. Przejdź do niego w konsoli (służy do tego polecenie cd). Na Windowsie możesz kliknąć prawym przyciskiem myszy na tym katalogu i z menu wybrać Git bash, wtedy odrazu znajdziesz się w tym katalogu. Jeśli chcesz rozpocząć śledzenie zmian w plikach projektu musisz wykonać polecenie
git initGit w katalogu Twojego projektu utworzy katalog .git zawierający tzw. szkielet repozytorium gita. Pewnie zauważyłeś po ścieżce do katalogu z projektem słowo master. Oznacza ono gałąź, z którą aktualnie pracujemy. Utwórzmy jakieś pliki w folderze projektu. Ja utworzyłam plik index.html, katalog css z plikiem styl.css oraz katalog js z plikiem skrypt.js. Napiszmy w konsoli
git statusPozwala ona zobaczyć aktualny status projektu tzn. jakie pliki zostały dodane, zmodyfikowane itp. Patrz rysunek poniżej.

git add index.htmlIstnieją trzy specyficzne polecenia add (dodaj do poczekalni).
- git add -A dodaje wszystkie pliki
- git add . dodaje nowe i zmodyfikowane pliki (bez usuniętych)
- git add -u dodaje zmodyfikowane lub usunięte pliki (bez nowych)
git commit -m "pierwszy commit"

git commit -am "modyfikacja pliku index"Git automatycznie doda do poczekalni (stage) i zatwierdzi wszystkie zmodyfikowane pliki (nie doda nowych plików). Jeśli zmodyfikowaliśmy jakiś plik i chcemy cofnąć zmiany do ostatniego commita musimy wydać poniższe polecenie. Zadziała ono również dla usuniętego niepotrzebnie pliku (zostanie przywrócony).
git checkout index.html

git branchgit zwróci nam słowo master, ponieważ posiadamy tylko jedną domyślną gałąź. Utworzymy teraz nową gałąź o nazwie nowa.
git branch nowaAby przełączyć się na nową gałąź należy wykonać komendę
git checkout nowa


git checkout masterSpójrz teraz ponownie na katalog z projektem. Wygląda on tak samo jak przed zmianą gałęzi na nowa. Zmiany z gałęzi nowa nie zostały uwzględnione w gałęzi master. Jeśli stwierdzimy, że chcemy połączyć obie gałęzie musimy wydać następujące polecenie.
git merge nowaŁączymy nim gałąź nowa z gałęzią master, w której aktualnie się znajdujemy. Gałąź usuwamy poleceniem
git branch -d nowaJeśli chcemy zobaczyć historię commitów musimy wydać następujące polecenie
git logBędzie ona wyglądała podobnie do poniższej. Każda informacja o commicie zawiera: autora, datę, hash commita i komentarz do niego.

git rm nazwa_plikuDo tej pory nasze działania dotyczyły tylko lokalnego repozytorium. Zajmiemy się teraz pracą ze zdalnym repozytorium. Wykorzystamy do tego celu serwis github. Wchodzimy zatem na githuba i klikamy na link w menu Pricing nad signup. Z dostępnych opcji wybieramy Create free account. Wprowadzamy potrzebne dane czyli login, email i hasło. Teraz musimy dodać do naszego konta klucz ssh, aby móc się łączyć z githubem. Jeśli go nie posiadamy musimy go wygenerować. Służy do tego poniższe polecenie. Możemy zmienić domyślne położenie pliku z kluczem oraz podać do niego hasło (lub kliknąć Enter pozostawiając klucz bezhasłowy).
ssh-keygen -t rsa -C "[email protected]"Gdy już mamy wygenerowany klucz przechodzimy w menu do Account Settings, wybieramy z lewego menu SSH Public Keys, następnie Add another public key. Wprowadzamy jakiś tytuł klucza i w pole tekstowe wklejamy nasz klucz czyli zawartość pliku id_rsa.pub. Teraz można już połączyć się z githuenm przez ssh.
ssh -T [email protected]Zostaniesz poproszony o podanie hasła do klucza (jeśli takowe zostało utworzone). Możesz teraz sklonować jakieś publiczne repozytorium np. jQuery.
git clone git://github.com/jquery/jquery.gitPrzejdziemy teraz do tworzenia własnego repozytorium na githubie. Kliknij na Dashboard, a następnie New Repository w prawym dolnym rogu. Github stworzy publiczny link do klonowania Twojego repozytorium dla wszystkich i prywatny dla Ciebie. Wpisujemy nazwę projektu i opcjonalnie jego opis i url. Teraz będąc w katalogu naszego projektu wydajemy następujące polecenie
git remote add origin [email protected]:twojlogin/nazwa_repo.gitNasz projekt zna teraz swoją zdalną lokalizację. Musimy jeszcze wysłać pliki na githuba (nasze zdalne repozytorium). Służy do tego polecenie push.
git push -u origin master

git pullmożesz pobrać zmiany ze zdalnego repozytorium do siebie. Przydatne linki:
ebook o gicie
pomoc githuba