wiki:GitHowTo
Last modified 6 years ago Last modified on 30.04.2013 17:06:49

Skrócona instrukcja używania gita

instalacja (Windows)

uruchomienie (Windows)

W dowolnym katalogu kliknąć prawym klawiszem i wybrać opcję Git Bash. To otworzy okno terminala z powłoką bash i możliwością uruchamiania sporej liczby komend uniksowych.

Warto jeszcze ustawić nazwę i e-mail, którymi będą oznaczane commity:

git config --global user.name "Imie Nazwisko"
git config --global user.email imie.nazwisko@nonexistent.invalid

Uwaga: oba będą widoczne w Tracu (e-mail zostanie przycięty do znaku @) i w historii repozytorium.

pomoc

Żeby wywołać pomoc dla wybranej komendy gita trzeba wpisać w powłoce git komenda --help

bash

Ważniejsze komendy w powłoce:

  • cd nazwakatalogu -- zmiana bieżącego katalogu
  • mkdir nazwakatalogu -- utworzenie katalogu
  • rmdir nazwakatalogu -- usunięcie katalogu (katalog musi być pusty)
  • ls, dir -- listowanie bieżącego katalogu

Uwaga: wciśnięcie klawisza tab uzupełnia nazwy poleceń i plików/katalogów.

Vim

Edytorem domyślnie używanym przez gita jest Vim.

W Vimie pracuje się w dwóch trybach: normal i insert. W trybie normal klawisze liter odpowiadają za poruszanie się po tekście (np. h, j, k, l), edycję i inne operacje. W trybie insert klawisze wstawiają znaki, które reprezentują. W trybie insert strzałki działają normalnie.

Do trybu insert przechodzi się wciskając małe i. Do trybu normal przechodzi się wciskając Escape.

Zmiany zapisuje się wpisując ":w" w trybie normal (komendy ":coś" trzeba potwierdzić enterem). Edytor zamyka się wpisując ":q" w trybie normal. Jeśli plik był zmieniony i nie został zapisany, wyjście bez zapisywania to ":q!" w trybie normal.

utworzenie kopii roboczej

git clone http://dashwiki.jarowit.net/code/dashwiki.git dashwiki-repository

Żeby móc wysyłać pracę na serwer trzeba jeszcze podać gitowi login i hasło. Do tego trzeba utworzyć plik ~/_netrc (w powłoce), najszybciej używając Vima (vim ~/_netrc). Plik powinien mieć taką zawartość:

machine dashwiki.jarowit.net
login mojlogin
password mojehaslo

typowy cykl pracy

kod

Pliki zmienione i pliki nowo utworzone trzeba dodać do tzw. indeksu (index) za pomocą komendy git add nazwapliku.

Pliki usuwa się za pomocą git rm nazwapliku.

Zmiany wprowadzone do pliku wycofuje się za pomocą git reset nazwapliku (wycofanie zmiany z indeksu), a potem git checkout nazwapliku.

Zmiany z indeksu zatwierdza się (commituje) za pomocą komendy git commit. Otworzy się edytor Vim.

Historię commitów wypisuje się komendą git log.

gałęzie

Do wypisania gałęzi dostępnych w bieżącym repozytorium służy komenda git branch. Do wypisania gałęzi również zdalnych służy git branch -a. W obu przypadkach aktualna gałąź jest oznaczona gwiazdką przed nazwą.

Żeby zmienić gałąź trzeba użyć polecenia git checkout nazwabrancha. Jeśli gałąź jeszcze nie istnieje, ale odpowiada gałęzi ze zdalnego repozytorium, zostanie utworzona nowa lokalna gałąź ze śledzeniem zmian zdalnego repozytorium. Tworzenie gałęzi w zdalnym repozytorium jest opisane tutaj.

Podczas przełączania na inną gąłąź zmiany wprowadzone do plików zostaną zachowane (nałożone na pliki z nowego brancha). Jeśli to nie będzie możliwe, zmiana się nie powiedzie.

Żeby wycofać wszystkie zmiany w plikach śledzonych przez gita można użyć polecenia git checkout -f.

Pobranie zmian ze zdalnego repozytorium do lokalnego można wykonać za pomocą git fetch. Uwaga: to nie wprowadzi zmian do lokalnych gałęzi, jedynie uaktualni lokalnie przechowywane informacje o zdalnym repozytorium.

Do wprowadzenia zmian ze zdalnego repozytorium do lokalnej gałęzi służy polecenie git pull (o ile lokalny branch śledzi zdalne repozytorium). git pull odpowiada wykonaniu kolejno poleceń git fetch i git merge ...

przesłanie zmian na serwer

Wymagana konfiguracja taka, jak podane w sekcji utworzenie kopii roboczej.

Polecenie git push przesyła zmiany wprowadzone do wszystkich lokalnych gałęzi na serwer (dotyczy tylko gałęzi, które już istnieją na serwerze).

Żeby utworzyć w zdalnym repozytorium nową gałąź trzeba wydać polecenie git push origin punkt-startowy:nowy-branch, gdzie nowy-branch to nazwa brancha do utworzenia (może zawierać znak /), a punkt-startowy to identyfikator commita (hasz, nazwa brancha lub taga itp.), któremu nowy branch będzie równy.