Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by … · 8 Git. Rozproszony system...

22

Transcript of Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by … · 8 Git. Rozproszony system...

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialnościani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialnościza ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.

Redaktor prowadzący: Ewelina BurskaProjekt okładki: Jan PaluchMateriały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.

Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: http://helion.pl (księgarnia internetowa, katalog książek)

Drogi Czytelniku!Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie?gitrozMożesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

ISBN: 978-83-246-5564-9

Copyright © Helion 2013

Printed in Poland.

• Kup książkę• Poleć książkę • Oceń książkę

• Księgarnia internetowa• Lubię to! » Nasza społeczność

Spis tre�ci

Podzi�kowania ................................................................................. 9

Cz��� I Repozytoria o liniowej historii ....................................... 11

Rozdzia� 1. Wprowadzenie ................................................................................ 13Git ................................................................................................................................... 13Jak przebiega praca nad projektem stosuj�cym Git? ...................................................... 14Hosting projektów Git .................................................................................................... 19Czego si� nauczysz z tego podr�cznika? ........................................................................ 20Dokumentacja ................................................................................................................. 20

Rozdzia� 2. Instalacja programu Git .................................................................. 23Konsola Gita w systemie Windows ................................................................................ 25U�atwienia uruchamiania konsoli w systemie Windows ................................................. 26Podstawowa konfiguracja klienta Git ............................................................................. 27Edytor ............................................................................................................................. 28

Rozdzia� 3. Tworzenie repozytoriów .................................................................. 29Inicjalizacja nowego repozytorium ................................................................................. 29Klonowanie repozytoriów .............................................................................................. 30Badanie historii projektu ................................................................................................ 33Wizualizacja historii projektu ......................................................................................... 36

Rozdzia� 4. Obszar roboczy ............................................................................... 39Przywracanie stanu projektu, który zawiera nowe pliki ................................................. 41

Rozdzia� 5. Tworzenie rewizji i przywracanie stanu plików ................................. 43Tworzenie rewizji ........................................................................................................... 43Przywracanie stanu plików do wybranej rewizji ............................................................ 45Przenoszenie repozytorium ............................................................................................. 48Rezygnacja z repozytorium ............................................................................................ 49

Rozdzia� 6. Stany plików .................................................................................. 51Uproszczony model pracy: przestrze� robocza i repozytorium ...................................... 51Indeksowanie .................................................................................................................. 52Diagram stanów .............................................................................................................. 53

4 Git. Rozproszony system kontroli wersji

Obszar roboczy, indeks i repozytorium .......................................................................... 56Modyfikowanie stanu plików repozytorium ................................................................... 57Stan repozytorium .......................................................................................................... 61Uproszczony model pracy raz jeszcze ............................................................................ 62Oznaczenia stanów pliku ................................................................................................ 68Stany dwuliterowe (mieszane) ........................................................................................ 69Repozytoria zwyk�e i surowe .......................................................................................... 72Sk�adnia polece� Gita ..................................................................................................... 73

Rozdzia� 7. Ignorowanie plików ........................................................................ 75Uzupe�nienie diagramu stanów ....................................................................................... 78

Rozdzia� 8. Znaczniki ....................................................................................... 83Znaczniki lekkie i oznaczone .......................................................................................... 83Tworzenie znaczników opisanych .................................................................................. 84Tworzenie znaczników lekkich ...................................................................................... 84Usuwanie znaczników .................................................................................................... 85Sprawdzanie dost�pnych znaczników ............................................................................. 85Szczegó�owe dane znacznika .......................................................................................... 85U�ycie znaczników ......................................................................................................... 86Generowanie skompresowanych plików odpowiadaj�cych konkretnej

wersji projektu ............................................................................................................. 89

Rozdzia� 9. Identyfikowanie rewizji ................................................................... 91Pe�ne skróty SHA-1 ........................................................................................................ 91Skrócona posta� SHA-1 .................................................................................................. 92Znaczniki ........................................................................................................................ 92Nazwa symboliczna HEAD ............................................................................................ 93Rewizja domy�lna .......................................................................................................... 93Repozytoria o historii nieliniowej ................................................................................... 94Dziennik reflog ............................................................................................................. 100Polecenia rev-parse oraz rev-list ................................................................................... 101Znaki specjalne wiersza polece� Windows .................................................................. 102

Rozdzia� 10. Skróty komend ............................................................................. 107Komendy u�atwiaj�ce zapisywanie stanu projektu ....................................................... 108Komendy u�atwiaj�ce wykonywanie �wicze� .............................................................. 110

Rozdzia� 11. Modyfikowanie historii projektu .................................................... 115Usuwanie ostatnich rewizji ........................................................................................... 116Modyfikowanie ostatniej rewizji .................................................................................. 117�czenie rewizji ............................................................................................................ 117Usuwanie zmian wprowadzonych przez rewizj� .......................................................... 120Odzyskiwanie poszczególnych plików z dowolnej rewizji ........................................... 125

Rozdzia� 12. Podsumowanie cz��ci I ................................................................ 127Co powiniene� umie� po lekturze pierwszej cz��ci? .................................................... 130Lista poznanych polece� .............................................................................................. 130

Spis tre�ci 5

Cz��� II Repozytoria z rozga��zieniami ..................................... 139

Rozdzia� 13. Tworzenie i usuwanie ga��zi .......................................................... 141Ga��zie to wskaniki rewizji! ....................................................................................... 141Ga�� master ................................................................................................................. 141Tworzenie ga��zi .......................................................................................................... 143Dodawanie rewizji w bie��cej ga��zi ............................................................................ 143Tworzenie ga��zi wskazuj�cych dowoln� rewizj� ........................................................ 144Prze��czanie ga��zi ....................................................................................................... 145Tworzenie i prze��czanie ga��zi .................................................................................... 147Stan detached HEAD .................................................................................................... 148Relacja zawierania ga��zi ............................................................................................. 150Usuwanie ga��zi ............................................................................................................ 153Zmiana nazwy ga��zi .................................................................................................... 155Ga��zie jako identyfikatory rewizji ............................................................................... 156Uwagi o usuwaniu ostatnich rewizji ............................................................................. 157Sprawdzanie ró�nic pomi�dzy ga��ziami ...................................................................... 157Ga��zie i dziennik reflog ............................................................................................... 161Zgubione rewizje .......................................................................................................... 163

Rozdzia� 14. ��czenie ga��zi: operacja merge ................................................... 167Przewijanie do przodu .................................................................................................. 168Przewijanie do przodu dla wielu ga��zi ........................................................................ 169�czenie ga��zi roz��cznych ......................................................................................... 170�czenie kilku roz��cznych ga��zi ................................................................................ 171Wycofywanie operacji git merge .................................................................................. 173

Rozdzia� 15. ��czenie ga��zi: operacja rebase ................................................... 175Podobie�stwa i ró�nice pomi�dzy poleceniami merge i rebase .................................... 176Wycofywanie operacji git rebase .................................................................................. 178

Rozdzia� 16. Podsumowanie cz��ci II ............................................................... 181Co powiniene� umie� po lekturze drugiej cz��ci? ........................................................ 181Lista poznanych polece� .............................................................................................. 182

Cz��� III Ga��zie zdalne ............................................................ 185

Rozdzia� 17. Definiowanie powi�zania mi�dzy repozytorium lokalnym a zdalnym .... 187Klonowanie raz jeszcze ................................................................................................ 187Klonowanie repozytorium z dysku ............................................................................... 191Definiowanie repozytoriów zdalnych ........................................................................... 192Definiowanie powi�zania mi�dzy ga��zi� lokaln� a ga��zi� �ledzon� .......................... 193Listowanie ga��zi .......................................................................................................... 194

Rozdzia� 18. Podstawy synchronizacji repozytoriów ........................................... 195Pobieranie ga��zi z repozytorium zdalnego do repozytorium lokalnego ...................... 195Uaktualnianie sklonowanych repozytoriów .................................................................. 197Repozytoria surowe ...................................................................................................... 198Przesy�anie ga��zi do repozytorium zdalnego ............................................................... 199

6 Git. Rozproszony system kontroli wersji

Wysy�anie dowolnej ga��zi ........................................................................................... 206Prze��czanie na ga�� zdaln� ........................................................................................ 208Przesy�anie ga��zi ze zmian� nazwy ............................................................................. 208Usuwanie ga��zi zdalnych ............................................................................................ 209Zabezpieczanie przed utrat� rewizji ............................................................................. 209Polecenie backup .......................................................................................................... 210Przesy�anie ga��zi do repozytorium zwyk�ego .............................................................. 210

Rozdzia� 19. Praktyczne wykorzystanie Gita — scenariusz pierwszy .................. 215Inicjalizacja projektu .................................................................................................... 216Do��czanie do projektu ................................................................................................. 216Wprowadzanie zmian w projekcie ................................................................................ 217Wykorzystywanie kilku ga��zi ..................................................................................... 218

Rozdzia� 20. ��czenie oddzielnych repozytoriów ................................................ 219Graf niespójny .............................................................................................................. 223

Rozdzia� 21. Podsumowanie cz��ci III .............................................................. 225Co powiniene� umie� po lekturze trzeciej cz��ci? ........................................................ 226Lista poznanych polece� .............................................................................................. 226

Cz��� IV Tre�� pliku ................................................................. 231

Rozdzia� 22. Konflikty ...................................................................................... 233Konflikt tekstowy: wynik operacji git merge ............................................................... 233Konflikt tekstowy: wynik operacji git rebase ............................................................... 236Dublowanie konfliktów przez operacje merge i rebase ................................................ 238Konflikty binarne .......................................................................................................... 238Konflikt binarny: wynik operacji git merge .................................................................. 239Konflikt binarny: wynik operacji git rebase ................................................................. 240Przywracanie plików do postaci z ��czonych ga��zi ..................................................... 242Polecenia checkout i show ............................................................................................ 242

Rozdzia� 23. Badanie ró�nic ............................................................................. 245Szukanie zmienionych wyrazów .................................................................................. 253Szukanie zmienionych plików ...................................................................................... 254Wyszukiwanie rewizji, w których podany plik zosta� zmieniony ................................. 255

Rozdzia� 24. Pliki tekstowe i binarne ................................................................ 257Odró�nianie plików binarnych od tekstowych .............................................................. 257Atrybut diff — konflikty tekstowe i binarne ................................................................ 258Konwersja znaków ko�ca wiersza ................................................................................ 259Projekty wieloplatformowe .......................................................................................... 260Ustalenie konwersji znaków ko�ca wiersza dla konkretnych plików ........................... 261

Rozdzia� 25. Podsumowanie cz��ci IV .............................................................. 263Co powiniene� umie� po lekturze czwartej cz��ci? ...................................................... 263Lista poznanych polece� .............................................................................................. 264

Spis tre�ci 7

Cz��� V Praca w sieci ............................................................. 267

Rozdzia� 26. Serwisy github.com i bitbucket.org ............................................... 269

Rozdzia� 27. Klucze SSH .................................................................................. 277Instalacja oprogramowania SSH w systemie Windows ................................................ 277Konfiguracja klucza SSH na serwerze github.com ....................................................... 279Konfiguracja klucza SSH na serwerze bitbucket.org .................................................... 280Repozytorium zdalne na serwerze SSH ........................................................................ 280

Rozdzia� 28. Tworzenie i usuwanie repozytoriów w serwisachgithub.com i bitbucket.org ........................................................... 283Inicjalizowanie nowego repozytorium: serwis github.com ........................................... 283Import istniej�cego kodu: serwis github.com ............................................................... 286Inicjalizowanie nowego repozytorium: serwis bitbucket.org ........................................ 287

Rozdzia� 29. Praktyczne wykorzystanie Gita — scenariusz drugi ........................ 291Scenariusz pierwszy realizowany w serwisach github.com i bitbucket.org .................. 292

Rozdzia� 30. Praca grupowa w serwisach github.com oraz bitbucket.org ........... 293Praca oparta na ��daniach aktualizacji ......................................................................... 294Praca grupowa wykorzystuj�ca ��dania aktualizacji (bez ga��zi) w pigu�ce ................ 301��dania aktualizacji i ga��zie ........................................................................................ 303Opisy i dyskusje ........................................................................................................... 313

Rozdzia� 31. Zintegrowany system �ledzenia b��dów ......................................... 315

Rozdzia� 32. Podsumowanie cz��ci V ............................................................... 319Repozytoria do �wiczenia znajomo�ci Gita .................................................................. 319

Dodatki ..................................................................................... 321

Dodatek A Literatura ..................................................................................... 321

Dodatek B S�ownik terminów angielskich ....................................................... 323

Skorowidz ....................................................................................................... 325

8 Git. Rozproszony system kontroli wersji

Rozdzia� 17. � Definiowanie powi�zania mi�dzy repozytorium lokalnym a zdalnym 187

Rozdzia� 17.

Definiowanie powi�zaniami�dzy repozytoriumlokalnym a zdalnym

Przejdmy do definiowania powi�za� pomi�dzy repozytoriami. Repozytorium, w któ-rym poleceniami git add oraz git commit b�dziemy wykonywali rewizje, nazwiemyrepozytorium lokalnym. Repozytoria, które pos�u�� do synchronizacji rewizji, na-zwiemy repozytoriami zdalnymi.

Repozytoria lokalne b�d� repozytoriami zwyk�ymi, a repozytoria zdalne — repozyto-riami surowymi.

Klonowanie raz jeszczePoznana w rozdziale 3. operacja klonowania:

git clone adres [folder]

dotyczy dwóch repozytoriów. Na lokalnym dysku tworzymy repozytorium, które b�-dzie kopi� repozytorium zdalnego. Klonowanie jest wi�c najprostszym przyk�ademtworzenia powi�zania pomi�dzy dwoma repozytoriami.

Po wykonaniu operacji klonowania repozytorium utworzone na dysku nazwiemy re-pozytorium lokalnym, a repozytorium, którego adres pojawi� si� w poleceniu gitclone — repozytorium zdalnym.

188 Cz��� III � Ga��zie zdalne

Po wykonaniu operacji:

git clone git://github.com/symfony/symfony.git .

repozytorium:

git://github.com/symfony/symfony.git

jest repozytorium zdalnym. Repozytorium utworzone na dysku to repozytoriumlokalne.

Podczas klonowania wykonywane s� nast�puj�ce czynno�ci:

1. Proces rozpoczyna si� od inicjalizacji nowego pustego repozytoriumlokalnego.

2. W repozytorium lokalnym dodawany jest adres repozytorium zdalnego.Adres ten jest automatycznie oznaczany nazw� origin.

3. Z repozytorium zdalnego kopiowane s� rewizje ze zdalnej ga��zi masterdo lokalnej ga��zi master.

4. W repozytorium lokalnym w folderze .git/refs/remotes/origin tworzony jestplik HEAD zawieraj�cy nazw� symboliczn� domy�lnej ga��zi repozytoriumzdalnego.

5. Nast�pnie definiowane jest powi�zanie lokalnej ga��zi master ze zdaln�ga��zi� master. Ga�� lokalna b�dzie �ledzi�a (ang. track) ga�� zdaln�.

6. Na zako�czenie stan plików w obszarze roboczym repozytorium lokalnegojest przywracany do postaci z ga��zi master.

Wszystkie powy�sze operacje mo�emy wykona� r�cznie.

Procedura r�cznego klonowania

1. Polecenie:git init

tworzy nowe puste repozytorium git.

2. Polecenie:git remote add origin adres

dodaje w konfiguracji adres repozytorium zdalnego.

3. Polecenie:git fetch --no-tags origin master:refs/remotes/origin/master

kopiuje z repozytorium zdalnego do repozytorium lokalnego wszystkierewizje zawarte w ga��zi master. Ponadto w repozytorium lokalnym w folderze.git/refs/remotes/origin tworzona jest nazwa symboliczna dla zdalnej ga��zimaster. Parametr --no-tags powoduje, �e znaczniki z repozytorium zdalnegonie b�d� kopiowane.

Rozdzia� 17. � Definiowanie powi�zania mi�dzy repozytorium lokalnym a zdalnym 189

4. Polecenie:git branch --set-upstream master origin/master

tworzy powi�zanie pomi�dzy lokaln� ga��zi� master a zdaln� ga��zi� master.

5. Na zako�czenie polecenie:git reset --hard HEAD

przywraca stan plików w obszarze roboczym.

Repozytorium wykonane opisan� powy�ej procedur� ró�ni si od repozytorium klo-nowanego tylko tym, �e w repozytorium klonowanym w pliku refs/remotes/origin/HEAD adres ga�zi zdalnej master jest zapisany w postaci symbolicznej:

ref: refs/remotes/origin/master

wiczenie 17.1Sklonuj repozytorium jQuery:

git://github.com/jquery/jquery.git

po czym sprawd konfiguracj� repozytorium lokalnego.

Po wykonaniu polecenia:git clone git://github.com/jquery/jquery.git .

w repozytorium lokalnym w pliku .git/config znajdziemy wpisy ustalaj�ce adres originoraz powi�zanie lokalnej ga��zi master ze zdaln� ga��zi� master:

[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = git://github.com/jquery/jquery.git[branch "master"] remote = origin merge = refs/heads/master

W pliku .git/HEAD znajdziemy odwo�anie symboliczne:ref: refs/heads/master

W pliku .git/refs/heads/master znajdziemy skrót SHA-1 rewizji, a w pliku .git/refs/remotes/origin/HEAD — odwo�anie symboliczne:

ref: refs/remotes/origin/master

wiczenie 17.2

Wykorzystuj�c polecenia:git initgit remote add origin git://github.com/jquery/jquery.gitgit fetch --no-tags origin master:refs/remotes/origin/master

190 Cz��� III � Ga��zie zdalne

git branch --set-upstream master origin/mastergit reset --hard HEAD

sklonuj repozytorium jQuery:git://github.com/jquery/jquery.git

Przed i po wykonaniu ka�dego kroku sprawd zawarto�� nast�puj�cych plików i fol-derów konfiguracyjnych:

.git/config

.git/HEAD

.git/refs/heads/master

.git/refs/remotes/origin

ROZWI�ZANIE

Krok 1.

Utwórz nowy folder i wydaj w nim polecenie:git init

W tym momencie plik .git/config nie zawiera �adnych informacji o repozytoriach zdal-nych. W pliku .git/HEAD obecne jest odwo�anie symboliczne:

ref: refs/heads/master

W folderze .git/refs nie wyst�puj� plik .git/refs/heads/master i folder .git/refs/remotes.

Krok 2.

Po wydaniu polecenia:git remote add origin git://github.com/jquery/jquery.git

w pliku .git/config znajdziemy wpis:[remote "origin"] url = git://github.com/jquery/jquery.git fetch = +refs/heads/*:refs/remotes/origin/*

który ustala adres repozytorium okre�lanego nazw� symboliczn� origin.

Zawarto�� folderu .git/refs/ i pliku .git/HEAD nie uleg�a zmianie.

Krok 3.

Wydaj polecenie:git fetch --no-tags origin master:refs/remotes/origin/master

Spowoduje ono pobranie z repozytorium zdalnego origin wszystkich rewizji zawar-tych w ga��zi master.

Ponadto w folderze .git/refs/remotes/origin/master utworzony zostanie plik zawiera-j�cy skrót SHA-1 ostatniej rewizji w ga��zi master repozytorium zdalnego origin.

Rozdzia� 17. � Definiowanie powi�zania mi�dzy repozytorium lokalnym a zdalnym 191

Krok 4.

Wydaj polecenie:git branch --set-upstream master origin/master

W ten sposób zdefiniowane zostanie powi�zanie pomi�dzy lokaln� ga��zi� master a zdal-n� ga��zi� master. Powi�zanie to jest zapisywane w pliku .git/config w postaci wpisu:

[branch "master"] remote = origin merge = refs/heads/master

Krok 5.

Ostatnie z polece�:git reset --hard HEAD

przywraca stan plików obszaru roboczego do postaci z ostatniej rewizji zawartej w lo-kalnej ga��zi master.

Klonowanie repozytorium z dyskuOperacj� klonowania repozytorium mo�emy wykona� lokalnie, bez �adnej komunika-cji sieciowej. Adresem repozytorium zdalnego mo�e by� �cie�ka prowadz�ca do repo-zytorium. Polecenie:

git clone C:\my\repos\example .

klonuje repozytorium z folderu C:\my\repos\example do folderu bie��cego.

�cie�k� prowadz�c� do repozytorium zdalnego mo�emy tak�e przekaza� jako parametrpolecenia git remote, np.:

git remote add origin C:\my\repos\example

Dzi�ki takiemu rozwi�zaniu �wiczenia dotycz�ce synchronizacji repozytoriów b�dzie-my mogli wykonywa� w pe�ni lokalnie.

wiczenie 17.3

W folderze cw-17-03/ wykonaj repozytorium przedstawione na rysunku 17.1.

Rysunek 17.1.Repozytoriumz �wiczenia 17.3

192 Cz��� III � Ga��zie zdalne

wiczenie 17.4

Repozytorium z �wiczenia 17.3 sklonuj do folderu cw-17-04/.

ROZWI�ZANIE

Przyjmijmy, �e foldery:

cw-17-03/cw-17-04/

znajduj� si� w tym samym folderze.

W wierszu polece� przejd do folderu cw-17-04/ i wydaj komend�:git clone ../cw-17-03 .

Alternatywnie klonowanie mo�esz wykona�, wydaj�c polecenie:git clone cw-17-03 cw-17-04

w folderze zawieraj�cym foldery cw-17-03/ oraz cw-17-04/.

Po tej operacji w folderze cw-17-04/ znajdziemy kopi� repozytorium z �wiczenia 17.3.Ponadto w pliku .git/config znajdziemy wpisy:

[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = C:/git/cw-17-04/../cw-17-03[branch "master"] remote = origin merge = refs/heads/master

Definiowanie repozytoriów zdalnychDo ustalenia adresu repozytorium zdalnego s�u�y komenda:

git remote add nazwa adres

Parametrem nazwa okre�lamy sposób odwo�ywania si� do definiowanego repozytoriumzdalnego, a parametr adres okre�la jego adres. Polecenie git remote add zapisuje in-formacje o repozytorium zdalnym w pliku .git/config. Przyk�adowy wpis przyjmujeposta� przedstawion� na listingu 17.1.

Listing 17.1. Fragment pliku .git/config zawieraj�cy informacje o repozytorium zdalnym nazwa

[remote "nazwa"] url = adres fetch = +refs/heads/*:refs/remotes/nazwa/*

Rozdzia� 17. � Definiowanie powi�zania mi�dzy repozytorium lokalnym a zdalnym 193

Je�li repozytorium znajduje si� na dysku w folderze C:\repos\zdalne i zechcemy munada� nazw� zdalne, polecenie git remote przyjmie wówczas posta�:

git remote add zdalne C:\repos\zdalne

W kolejnych rozdzia�ach repozytoria zdalne b�d� pochodzi�y z serwerów github.comoraz bitbucket.org. Polecenie git remote przyjmie wówczas posta�:

git remote add my [email protected]:gajdaw/symfony.gitgit remote add gajdaw [email protected]:gajdaw/symfony.git

Do wy�wietlenia listy repozytoriów zdalnych s�u�y polecenie:git remote –v

Adres repozytorium zdalnego mo�emy usun�� poleceniem:git remote rm nazwa

Definiowanie powi�zania mi�dzyga��zi� lokaln� a ga��zi� �ledzon�

Dla ka�dej ga��zi zawartej w repozytorium lokalnym mo�emy ustali� odpowiadaj�c�jej ga��� �ledzon� (ang. tracking branch). Dzi�ki temu polecenia synchronizacji, np.:

git pullgit pushgit fetch

mog� by� wywo�ywane bez parametrów. W takiej sytuacji synchronizacja b�dzie do-tyczy�a bie��cej ga��zi oraz odpowiadaj�cej jej ga��zi �ledzonej.

Nazwy ga��zi �ledzonych poznamy, wydaj�c polecenie:git config --list

Wydruk b�dzie zawiera� informacje postaci:branch.master.remote=originbranch.master.merge=refs/heads/master

Ogólnie rzecz bior�c, dla ga��zi lokalnej o nazwie X wpisy ustalaj�ce ga�� �ledzon�b�d� nast�puj�ce:

branch.X.remote=...branch.X.merge=...

Nazw ga�zi �ledzonej odpowiadaj�cej ga�zi X poznamy tak�e, wydaj�c komendy:

git config --get branch.X.remotegit config --get branch.X.merge

194 Cz��� III � Ga��zie zdalne

Do r�cznego ustalenia ga��zi �ledzonej mo�emy u�y� polecenia:git branch --set-upstream galaz-lokalna repozytorium-zdalne/galaz-zdalna

Polecenie:git branch --set-upstream master origin/master

ustala, �e ga��zi� �ledzon� dla ga��zi master b�dzie ga�� master w repozytorium origin.

Podobnie polecenie:git branch --set-upstream lorem ipsum/dolor

ustala, �e ga��zi� �ledzon� dla ga��zi lorem b�dzie ga�� dolor w repozytorium o na-zwie ipsum.

Wydruk generowany poleceniem:git config --list

przyjmie posta�:branch.lorem.remote=ipsumbranch.lorem.merge=refs/heads/dolor

Polecenie:

git branch --set-upstream master origin/master

jest równowa�ne dwóm poleceniom:

git config branch.master.remote origingit config branch.master.merge refs/heads/master

Listowanie ga��ziDo sprawdzania listy ga��zi lokalnych s�u�y poznane w cz��ci drugiej polecenie:

git branch

Ga��zie zdalne poznamy, wydaj�c polecenie:git branch –r

Komenda:git branch -a

wy�wietla list� wszystkich ga��zi.

Skorowidz

BBaazar, 270baza danych

repozytorium, Patrz: repozytoriumrewizji, Patrz: repozytorium

Bitbucket, 20, 269, 270, 280, 283, 287, 292, 293,313

interfejs, 275branch, Patrz: ga��

Ccommit, Patrz: rewizja, operacja zatwierdzaniaCygwin, 278cytowanie, 102

Ddiagram stanów, 78DVCS, Patrz: system kontroli wersjidziennik reflog, 100, 137, 154, 161, 162, 178, 237

Eedytor

tekstowy, 28, 58vi, 28, 59

Ffast forward, Patrz: przewijanie do przodufile

added, Patrz: plik dodanydeleted, Patrz: plik usuni�ty

modified, Patrz: plik zmodyfikowanyrenamed, Patrz: plik o zmienionej nazwiestaged, Patrz: plik indeksowanyunmodified, Patrz: plik aktualnyunstaged, Patrz: plik niezainindeksowanyuntracked, Patrz: plik nie�ledzony

file modified, Patrz: plik zmodyfikowanyfolder

domowy u�ytkownika, 107roboczy, 43

fork, Patrz: rozga��zianie

Gga��, 141, 156, 161, 181, 303

bie��ca, 142, 148, 153, 193lista, 194lokalna, 194, 217, 285��czenie, 167, 170, 171, 175, 176, 178, 181,

195, 233master, 141, 153, 211, 215, 285prze��czanie, 145, 147, 208przes�anie ze zmian� nazwy, 209przesy�anie, 210roz��czno��, 150�ledzona, 193, 194, 199, 209tworzenie, 141, 143, 144, 147tymczasowa, 221usuwanie, 141, 153, 154, 157, 209wysy�anie, 206zawieranie, 150zdalna, 194, 209zmiana nazwy, 155

GFM, 313Github, 19, 20, 269, 279, 283, 286, 292, 293, 313

interfejs, 271

326 Git. Rozproszony system kontroli wersji

Github Flavored Markdown, Patrz: GFMGitPad, 28Google Code, 19graf niespójny, 223

HHEAD, 93, 96hosting, 19

Iimportowanie kodu, 286indeks, 56, 72, 127, 128, 198, 245indeksowanie, 52

Jj�zyk

bash, 109MarkDown, 313

jQuery, 39

Kklient

Git, 278github.com, 277

klucz SSH, 278, 279, 280komenda, 130

echo, 135find, 24, 131, 134git, 24, 130git add, 43, 51, 57, 75, 128, 130, 133, 134git archive, 89, 291git backup, 210git branch, 46, 130, 133, 143, 144, 153, 155,

182, 189, 194, 226, 227git checkout, 45, 86, 125, 133, 145, 147, 148,

164, 182, 208, 217, 229, 241, 242, 243, 260,264

git checkout master, 46git clone, 30, 129, 131, 187, 191git commit, 43, 58, 75, 116, 117, 128, 133,

134, 162, 199, 260git config, 130, 183, 193, 227, 259, 265git diff, 157, 183, 245, 248, 263, 265git fetch, 188, 193, 195, 226, 227git gc, 183git gui, 132git help add, 130git help branch, 130git help config, 130

git help init, 130git init, 29, 130, 131, 141, 188git log, 33, 91, 96, 104, 131, 132, 173, 255,

263, 265git merge, 168, 170, 171, 173, 176, 178, 181,

183, 195, 217, 228, 233, 238, 239git mv, 60git prune, 164, 183git pull, 72, 129, 193, 196, 198, 199, 228, 301git push, 72, 129, 193, 199, 210, 217, 228, 301git rebase, 116, 117, 119, 175, 176, 178, 181,

184, 217, 236, 238, 240, 264git reflog, 100, 137, 184git remote, 227git remote add, 192, 222, 225, 227, 301git remote add origin, 188, 191, 219, 220, 226git remote rm, 227git reset, 39, 86, 116, 133, 157, 173, 178, 184,

189, 226git revert, 116, 120, 127, 181git rev-list, 137git rev-parse, 101, 137git rm, 51, 59, 134git shortlog, 131git show, 85, 242, 243, 264git simple commits, 121git simple-commit, 110, 112git simple-loop, 111git status, 68, 75, 128, 133, 182git symbolic, 182git tag, 84gitk, 132skrót, 107ssh, 24wc, 24

konflikt, 233, 236, 263binarny, 238, 242, 263dublowanie, 238tekstowy, 233, 236, 242, 263

konsola, 25, 26bash, 26

kontekst, 248kontrola

akceptowanych rewizji, 269spójno�ci danych, 129uprawnie� u�ytkowników, 269

kopia bezpiecze�stwa, 30, 291

LLinux, 278lokalno��, 129

Skorowidz 327

Mmenu kontekstowe, 26Mercurial, 270migawka, Patrz: snapshot

Nnazwa symboliczna HEAD, 93, 96

Oobszar roboczy, 39, 56, 72, 127, 128, 132, 148,

198, 211, 245openssh, 278operacja zatwierdzania, 15, 16

Ppakiet openssh, 278parent, Patrz: rodzicplik

aktualny, 51, 52, 54, 128binarny, 257dodany, 69git/HEAD, 93git/info/exclude, 75, 76, 135gitattributes, 258, 261gitignore, 75, 76, 135ignorowany, 53, 75, 78, 128konfiguracyjny, 76, 131konfiguracyjny gitconfig, 107nieignorowany, 53, 78, 128nie�ledzony, 51, 52, 53, 57niezaindeksowany, 53, 54, 56, 59, 128o zmienionej nazwie, 69odpowiadaj�ce rewizji, 89przywracanie, 40stan, 68, 127stan dwuliterowy, 69tekstowy, 238, 257usuni�ty, Patrz: plik usuni�tyzaindeksowany, 53, 56, 128zmiana nazwy, 60zmieniony, 255zmodyfikowany, 51, 52, 69

polecenie, Patrz: komendapraca grupowa, 18, 30, 127, 233, 291, 293program GitPad, 28projekt

historia, 18, 33, 36, 115, 116, 125, 127hosting, 19stan, 17, 108, 125

protokó�file, 277Git, 277HTTPS, 277SSH, 277, 280

przestrze� robocza, 51, 52przewijanie do przodu, 168, 169, 199, 223przodek, 96pull request, Patrz: ��danie aktualizacji

Rrepo, Patrz: repozytoriumrepository, Patrz: repozytorium

bare, Patrz: repozytorium surowerepozytorium, 14, 18, 29, 30, 39, 48, 52, 56, 127,

128, 141g�ówne, 216inicjalizowanie, 29klonowanie, 30, 187, 188, 191, 293, 301, 302lokalne, 187, 188, 195, 198, 199, 225, 302��czenie, 219, 223o historii nieliniowej, 94prywatne, 271, 291, 292publiczne, 271stan, 61surowe, 72, 198, 216, 226synchronizacja, 195, 225�ledzone, 272tworzenie, 283, 287uaktualnianie, 197, 199wspó�dzielenie, 269, 293zdalne, 187, 188, 192, 193, 195, 199, 209,

211, 219, 225, 280zwyk�e, 72, 210

revision, Patrz: rewizjarevision control system, Patrz: system kontroli

wersjirewizja, 16, 18, 34, 45, 52, 127, 156, 245

akceptowana, 269domy�lna, 93graf niespójny, 223identyfikacja, 91, 92, 93, 100identyfikator, 34��czenie, 115, 117, 119tworzenie, 58, 142, 143usuwanie, 115, 116, 127zabezpieczanie przed utrat�, 209zgubiona, 149, 163

rodzic, 95, 96, 97rozga��zianie, 293

328 Git. Rozproszony system kontroli wersji

Sserwer

bitbucket.org, 25SSH, 25

skrót SHA-1, 91, 92, 96, 129, 148, 154, 164, 195snapshot, 44Source Forge, 19stan detached HEAD, 148, 163, 164, 181, 236, 237stan projektu, Patrz: projekt stanstrumie� przekierowanie, 102system

j�dro, 13kontroli rewizji, Patrz: system kontroli wersjikontroli wersji, 13, 270�ledzenia b��dów, 30, Patrz: �ledzenie b��dów

��cie�ka dost�pu, 24�ledzenie b��dów, 269, 291, 315, 319

Ttag, Patrz: znacznik

annotated, Patrz: znacznik opisanylightweight, Patrz: znacznik lekki

Uujednolicony format opisu, 246

Vvi, 28, 59

Wwiersz polece�, 26, 102working area, Patrz: obszar roboczyworking directory, Patrz: obszar roboczy

Zzmienna

�rodowiskowaPATH, 23

znacznik, 83, 92, 96, 156, 291dane, 85dost�pno��, 85, 136konfliktu, 234lekki, 83, 84opisany, 83, 84tworzenie, 136usuwanie, 85, 136

znak!, 108", 102, 103^, 97, 98, 99, 102|, 102<>, 102>, 102ko�ca wiersza, 259, 260, 261tylda, 96, 98, 99z�amania wiersza, 24

���danie aktualizacji, 269, 293, 294, 301, 303, 319