Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00121 007094 15344677 na godz. na dobę w sumie
Git. Rozproszony system kontroli wersji - książka
Git. Rozproszony system kontroli wersji - książka
Autor: Liczba stron: 328
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-5564-9 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> inne - programowanie
Porównaj ceny (książka, ebook (-35%), audiobook).

Git - oszczędź sobie kłopotów z synchronizacją projektu!

Praca nad niemal każdym projektem informatycznym wymaga współdziałania wielu osób, często pracujących z dala od siebie. W takich warunkach bardzo łatwo popełnić błąd, nadpisać jakiś ważny plik albo przypadkowo zdublować dane. Mały projekt po takiej wpadce da się jeszcze uratować, ale większy... można wyrzucić do kosza. Chyba że od momentu jego inicjalizacji używamy narzędzia odpowiedzialnego za właściwą synchronizację danych, czyli systemu kontroli wersji, co jest standardem we współczesnej informatyce. Jednym z takich programów jest git, napisany na potrzeby zarządzania kodem źródłowym jądra systemu Linux - taka rekomendacja mówi sama za siebie.

Możliwości programu git i sposoby jego praktycznego zastosowania w różnych projektach przedstawione zostały w tej książce. Znajdziesz tu podstawowe informacje o instalacji środowiska i tworzeniu repozytoriów, pracy z plikami, identyfikowaniu rewizji i zmienianiu historii projektu. Dowiesz się, kiedy i jak tworzyć czy łączyć gałęzie oraz całe repozytoria, korzystać z repozytorium lokalnego i zdalnego, a także synchronizować je w odpowiedni sposób. Poznasz możliwe konflikty między wersjami pliku i nauczysz się radzić sobie z nimi. Zrozumiesz, jak wykorzystywać najbardziej znane serwery hostingowe dla projektów git oraz dostępne w nich, wbudowane systemy śledzenia błędów. I wreszcie przestaniesz miewać koszmary, w których tracisz tygodnie na odszukanie zagubionego pliku. Git zrobi to za Ciebie!

Wypróbuj git - wystarczająco dobry nawet dla jądra Linuksa!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

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ści ani 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ści za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Redaktor prowadzący: Ewelina Burska Projekt okładki: Jan Paluch Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: 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?gitroz Moż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 ................................................................................ 13 Git ................................................................................................................................... 13 Jak przebiega praca nad projektem stosującym Git? ...................................................... 14 Hosting projektów Git .................................................................................................... 19 Czego siĊ nauczysz z tego podrĊcznika? ........................................................................ 20 Dokumentacja ................................................................................................................. 20 Rozdziaä 2. Instalacja programu Git .................................................................. 23 Konsola Gita w systemie Windows ................................................................................ 25 Uáatwienia uruchamiania konsoli w systemie Windows ................................................. 26 Podstawowa konfiguracja klienta Git ............................................................................. 27 Edytor ............................................................................................................................. 28 Rozdziaä 3. Tworzenie repozytoriów .................................................................. 29 Inicjalizacja nowego repozytorium ................................................................................. 29 Klonowanie repozytoriów .............................................................................................. 30 Badanie historii projektu ................................................................................................ 33 Wizualizacja historii projektu ......................................................................................... 36 Rozdziaä 4. Obszar roboczy ............................................................................... 39 Przywracanie stanu projektu, który zawiera nowe pliki ................................................. 41 Rozdziaä 5. Tworzenie rewizji i przywracanie stanu plików ................................. 43 Tworzenie rewizji ........................................................................................................... 43 Przywracanie stanu plików do wybranej rewizji ............................................................ 45 Przenoszenie repozytorium ............................................................................................. 48 Rezygnacja z repozytorium ............................................................................................ 49 Rozdziaä 6. Stany plików .................................................................................. 51 Uproszczony model pracy: przestrzeĔ robocza i repozytorium ...................................... 51 Indeksowanie .................................................................................................................. 52 Diagram stanów .............................................................................................................. 53 4 Git. Rozproszony system kontroli wersji Obszar roboczy, indeks i repozytorium .......................................................................... 56 Modyfikowanie stanu plików repozytorium ................................................................... 57 Stan repozytorium .......................................................................................................... 61 Uproszczony model pracy raz jeszcze ............................................................................ 62 Oznaczenia stanów pliku ................................................................................................ 68 Stany dwuliterowe (mieszane) ........................................................................................ 69 Repozytoria zwykáe i surowe .......................................................................................... 72 Skáadnia poleceĔ Gita ..................................................................................................... 73 Rozdziaä 7. Ignorowanie plików ........................................................................ 75 Uzupeánienie diagramu stanów ....................................................................................... 78 Rozdziaä 8. Znaczniki ....................................................................................... 83 Znaczniki lekkie i oznaczone .......................................................................................... 83 Tworzenie znaczników opisanych .................................................................................. 84 Tworzenie znaczników lekkich ...................................................................................... 84 Usuwanie znaczników .................................................................................................... 85 Sprawdzanie dostĊpnych znaczników ............................................................................. 85 Szczegóáowe dane znacznika .......................................................................................... 85 UĪycie znaczników ......................................................................................................... 86 Generowanie skompresowanych plików odpowiadających konkretnej wersji projektu ............................................................................................................. 89 Rozdziaä 9. Identyfikowanie rewizji ................................................................... 91 Peáne skróty SHA-1 ........................................................................................................ 91 Skrócona postaü SHA-1 .................................................................................................. 92 Znaczniki ........................................................................................................................ 92 Nazwa symboliczna HEAD ............................................................................................ 93 Rewizja domyĞlna .......................................................................................................... 93 Repozytoria o historii nieliniowej ................................................................................... 94 Dziennik reflog ............................................................................................................. 100 Polecenia rev-parse oraz rev-list ................................................................................... 101 Znaki specjalne wiersza poleceĔ Windows .................................................................. 102 Rozdziaä 10. Skróty komend ............................................................................. 107 Komendy uáatwiające zapisywanie stanu projektu ....................................................... 108 Komendy uáatwiające wykonywanie üwiczeĔ .............................................................. 110 Rozdziaä 11. Modyfikowanie historii projektu .................................................... 115 Usuwanie ostatnich rewizji ........................................................................................... 116 Modyfikowanie ostatniej rewizji .................................................................................. 117 àączenie rewizji ............................................................................................................ 117 Usuwanie zmian wprowadzonych przez rewizjĊ .......................................................... 120 Odzyskiwanie poszczególnych plików z dowolnej rewizji ........................................... 125 Rozdziaä 12. Podsumowanie czöĈci I ................................................................ 127 Co powinieneĞ umieü po lekturze pierwszej czĊĞci? .................................................... 130 Lista poznanych poleceĔ .............................................................................................. 130 Spis treĈci 5 CzöĈè II Repozytoria z rozgaäözieniami ..................................... 139 Rozdziaä 13. Tworzenie i usuwanie gaäözi .......................................................... 141 GaáĊzie to wskaĨniki rewizji! ....................................................................................... 141 GaáąĨ master ................................................................................................................. 141 Tworzenie gaáĊzi .......................................................................................................... 143 Dodawanie rewizji w bieĪącej gaáĊzi ............................................................................ 143 Tworzenie gaáĊzi wskazujących dowolną rewizjĊ ........................................................ 144 Przeáączanie gaáĊzi ....................................................................................................... 145 Tworzenie i przeáączanie gaáĊzi .................................................................................... 147 Stan detached HEAD .................................................................................................... 148 Relacja zawierania gaáĊzi ............................................................................................. 150 Usuwanie gaáĊzi ............................................................................................................ 153 Zmiana nazwy gaáĊzi .................................................................................................... 155 GaáĊzie jako identyfikatory rewizji ............................................................................... 156 Uwagi o usuwaniu ostatnich rewizji ............................................................................. 157 Sprawdzanie róĪnic pomiĊdzy gaáĊziami ...................................................................... 157 GaáĊzie i dziennik reflog ............................................................................................... 161 Zgubione rewizje .......................................................................................................... 163 Rozdziaä 14. ãñczenie gaäözi: operacja merge ................................................... 167 Przewijanie do przodu .................................................................................................. 168 Przewijanie do przodu dla wielu gaáĊzi ........................................................................ 169 àączenie gaáĊzi rozáącznych ......................................................................................... 170 àączenie kilku rozáącznych gaáĊzi ................................................................................ 171 Wycofywanie operacji git merge .................................................................................. 173 Rozdziaä 15. ãñczenie gaäözi: operacja rebase ................................................... 175 PodobieĔstwa i róĪnice pomiĊdzy poleceniami merge i rebase .................................... 176 Wycofywanie operacji git rebase .................................................................................. 178 Rozdziaä 16. Podsumowanie czöĈci II ............................................................... 181 Co powinieneĞ umieü po lekturze drugiej czĊĞci? ........................................................ 181 Lista poznanych poleceĔ .............................................................................................. 182 CzöĈè III Gaäözie zdalne ............................................................ 185 Rozdziaä 17. Definiowanie powiñzania miödzy repozytorium lokalnym a zdalnym .... 187 Klonowanie raz jeszcze ................................................................................................ 187 Klonowanie repozytorium z dysku ............................................................................... 191 Definiowanie repozytoriów zdalnych ........................................................................... 192 Definiowanie powiązania miĊdzy gaáĊzią lokalną a gaáĊzią Ğledzoną .......................... 193 Listowanie gaáĊzi .......................................................................................................... 194 Rozdziaä 18. Podstawy synchronizacji repozytoriów ........................................... 195 Pobieranie gaáĊzi z repozytorium zdalnego do repozytorium lokalnego ...................... 195 Uaktualnianie sklonowanych repozytoriów .................................................................. 197 Repozytoria surowe ...................................................................................................... 198 Przesyáanie gaáĊzi do repozytorium zdalnego ............................................................... 199 6 Git. Rozproszony system kontroli wersji Wysyáanie dowolnej gaáĊzi ........................................................................................... 206 Przeáączanie na gaáąĨ zdalną ........................................................................................ 208 Przesyáanie gaáĊzi ze zmianą nazwy ............................................................................. 208 Usuwanie gaáĊzi zdalnych ............................................................................................ 209 Zabezpieczanie przed utratą rewizji ............................................................................. 209 Polecenie backup .......................................................................................................... 210 Przesyáanie gaáĊzi do repozytorium zwykáego .............................................................. 210 Rozdziaä 19. Praktyczne wykorzystanie Gita — scenariusz pierwszy .................. 215 Inicjalizacja projektu .................................................................................................... 216 Doáączanie do projektu ................................................................................................. 216 Wprowadzanie zmian w projekcie ................................................................................ 217 Wykorzystywanie kilku gaáĊzi ..................................................................................... 218 Rozdziaä 20. ãñczenie oddzielnych repozytoriów ................................................ 219 Graf niespójny .............................................................................................................. 223 Rozdziaä 21. Podsumowanie czöĈci III .............................................................. 225 Co powinieneĞ umieü po lekturze trzeciej czĊĞci? ........................................................ 226 Lista poznanych poleceĔ .............................................................................................. 226 CzöĈè IV TreĈè pliku ................................................................. 231 Rozdziaä 22. Konflikty ...................................................................................... 233 Konflikt tekstowy: wynik operacji git merge ............................................................... 233 Konflikt tekstowy: wynik operacji git rebase ............................................................... 236 Dublowanie konfliktów przez operacje merge i rebase ................................................ 238 Konflikty binarne .......................................................................................................... 238 Konflikt binarny: wynik operacji git merge .................................................................. 239 Konflikt binarny: wynik operacji git rebase ................................................................. 240 Przywracanie plików do postaci z áączonych gaáĊzi ..................................................... 242 Polecenia checkout i show ............................................................................................ 242 Rozdziaä 23. Badanie róĔnic ............................................................................. 245 Szukanie zmienionych wyrazów .................................................................................. 253 Szukanie zmienionych plików ...................................................................................... 254 Wyszukiwanie rewizji, w których podany plik zostaá zmieniony ................................. 255 Rozdziaä 24. Pliki tekstowe i binarne ................................................................ 257 OdróĪnianie plików binarnych od tekstowych .............................................................. 257 Atrybut diff — konflikty tekstowe i binarne ................................................................ 258 Konwersja znaków koĔca wiersza ................................................................................ 259 Projekty wieloplatformowe .......................................................................................... 260 Ustalenie konwersji znaków koĔca wiersza dla konkretnych plików ........................... 261 Rozdziaä 25. Podsumowanie czöĈci IV .............................................................. 263 Co powinieneĞ umieü po lekturze czwartej czĊĞci? ...................................................... 263 Lista 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 .................................................................................. 277 Instalacja oprogramowania SSH w systemie Windows ................................................ 277 Konfiguracja klucza SSH na serwerze github.com ....................................................... 279 Konfiguracja klucza SSH na serwerze bitbucket.org .................................................... 280 Repozytorium zdalne na serwerze SSH ........................................................................ 280 Rozdziaä 28. Tworzenie i usuwanie repozytoriów w serwisach github.com i bitbucket.org ........................................................... 283 Inicjalizowanie nowego repozytorium: serwis github.com ........................................... 283 Import istniejącego kodu: serwis github.com ............................................................... 286 Inicjalizowanie nowego repozytorium: serwis bitbucket.org ........................................ 287 Rozdziaä 29. Praktyczne wykorzystanie Gita — scenariusz drugi ........................ 291 Scenariusz pierwszy realizowany w serwisach github.com i bitbucket.org .................. 292 Rozdziaä 30. Praca grupowa w serwisach github.com oraz bitbucket.org ........... 293 Praca oparta na Īądaniach aktualizacji ......................................................................... 294 Praca grupowa wykorzystująca Īądania aktualizacji (bez gaáĊzi) w piguáce ................ 301 ĩądania aktualizacji i gaáĊzie ........................................................................................ 303 Opisy i dyskusje ........................................................................................................... 313 Rozdziaä 31. Zintegrowany system Ĉledzenia bäödów ......................................... 315 Rozdziaä 32. Podsumowanie czöĈci V ............................................................... 319 Repozytoria 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. i Definiowanie powiñzania miödzy repozytorium lokalnym a zdalnym 187 Rozdziaä 17. Definiowanie powiñzania miödzy repozytorium lokalnym a zdalnym PrzejdĨmy do definiowania powiązaĔ pomiĊdzy repozytoriami. Repozytorium, w któ- rym poleceniami git add oraz git commit bĊdziemy wykonywali rewizje, nazwiemy repozytorium 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 jeszcze Poznana 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áadem tworzenia 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 git clone — repozytorium zdalnym. 188 CzöĈè III i 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 repozytorium lokalne. Podczas klonowania wykonywane są nastĊpujące czynnoĞci: 1. Proces rozpoczyna siĊ od inicjalizacji nowego pustego repozytorium lokalnego. 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 master do lokalnej gaáĊzi master. 4. W repozytorium lokalnym w folderze .git/refs/remotes/origin tworzony jest plik HEAD zawierający nazwĊ symboliczną domyĞlnej gaáĊzi repozytorium zdalnego. 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 lokalnego jest 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 wszystkie rewizje zawarte w gaáĊzi master. Ponadto w repozytorium lokalnym w folderze .git/refs/remotes/origin tworzona jest nazwa symboliczna dla zdalnej gaáĊzi master. Parametr --no-tags powoduje, Īe znaczniki z repozytorium zdalnego nie bĊdą kopiowane. Rozdziaä 17. i 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.1 Sklonuj 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 origin oraz 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 init git remote add origin git://github.com/jquery/jquery.git git fetch --no-tags origin master:refs/remotes/origin/master 190 CzöĈè III i Gaäözie zdalne git branch --set-upstream master origin/master git 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. i 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 dysku OperacjĊ 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 eposexample . klonuje repozytorium z folderu C:my eposexample do folderu bieĪącego. ĝcieĪkĊ prowadzącą do repozytorium zdalnego moĪemy takĪe przekazaü jako parametr polecenia git remote, np.: git remote add origin C:my eposexample 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. Repozytorium z üwiczenia 17.3 192 çwiczenie 17.4 CzöĈè III i Gaäözie zdalne 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 zdalnych Do ustalenia adresu repozytorium zdalnego sáuĪy komenda: git remote add nazwa adres Parametrem nazwa okreĞlamy sposób odwoáywania siĊ do definiowanego repozytorium zdalnego, a parametr adres okreĞla jego adres. Polecenie git remote add zapisuje in- formacje o repozytorium zdalnym w pliku .git/config. Przykáadowy wpis przyjmuje postaü 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. i Definiowanie powiñzania miödzy repozytorium lokalnym a zdalnym 193 JeĞli repozytorium znajduje siĊ na dysku w folderze C: eposzdalne i zechcemy mu nadaü nazwĊ zdalne, polecenie git remote przyjmie wówczas postaü: git remote add zdalne C: eposzdalne W kolejnych rozdziaáach repozytoria zdalne bĊdą pochodziáy z serwerów github.com oraz bitbucket.org. Polecenie git remote przyjmie wówczas postaü: git remote add my git@github.com:gajdaw/symfony.git git remote add gajdaw git@bitbucket.org: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ödzy gaäö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 pull git push git 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=origin branch.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.remote git config --get branch.X.merge 194 CzöĈè III i 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=ipsum branch.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 origin git config branch.master.merge refs/heads/master Listowanie gaäözi Do 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 B Baazar, 270 baza danych repozytorium, Patrz: repozytorium rewizji, Patrz: repozytorium Bitbucket, 20, 269, 270, 280, 283, 287, 292, 293, 313 interfejs, 275 branch, Patrz: gaáąĨ C commit, Patrz: rewizja, operacja zatwierdzania Cygwin, 278 cytowanie, 102 D diagram stanów, 78 DVCS, Patrz: system kontroli wersji dziennik reflog, 100, 137, 154, 161, 162, 178, 237 edytor tekstowy, 28, 58 vi, 28, 59 E F fast forward, Patrz: przewijanie do przodu file added, Patrz: plik dodany deleted, Patrz: plik usuniĊty modified, Patrz: plik zmodyfikowany renamed, Patrz: plik o zmienionej nazwie staged, Patrz: plik indeksowany unmodified, Patrz: plik aktualny unstaged, Patrz: plik niezainindeksowany untracked, Patrz: plik nieĞledzony file modified, Patrz: plik zmodyfikowany folder domowy uĪytkownika, 107 roboczy, 43 fork, Patrz: rozgaáĊzianie G gaáąĨ, 141, 156, 161, 181, 303 bieĪąca, 142, 148, 153, 193 lista, 194 lokalna, 194, 217, 285 áączenie, 167, 170, 171, 175, 176, 178, 181, 195, 233 master, 141, 153, 211, 215, 285 przeáączanie, 145, 147, 208 przesáanie ze zmianą nazwy, 209 przesyáanie, 210 rozáącznoĞü, 150 Ğledzona, 193, 194, 199, 209 tworzenie, 141, 143, 144, 147 tymczasowa, 221 usuwanie, 141, 153, 154, 157, 209 wysyáanie, 206 zawieranie, 150 zdalna, 194, 209 zmiana nazwy, 155 GFM, 313 Github, 19, 20, 269, 279, 283, 286, 292, 293, 313 interfejs, 271 326 Git. Rozproszony system kontroli wersji Github Flavored Markdown, Patrz: GFM GitPad, 28 Google Code, 19 graf niespójny, 223 H HEAD, 93, 96 hosting, 19 I importowanie kodu, 286 indeks, 56, 72, 127, 128, 198, 245 indeksowanie, 52 jĊzyk bash, 109 MarkDown, 313 jQuery, 39 J K klient Git, 278 github.com, 277 klucz SSH, 278, 279, 280 komenda, 130 echo, 135 find, 24, 131, 134 git, 24, 130 git add, 43, 51, 57, 75, 128, 130, 133, 134 git archive, 89, 291 git backup, 210 git branch, 46, 130, 133, 143, 144, 153, 155, 182, 189, 194, 226, 227 git checkout, 45, 86, 125, 133, 145, 147, 148, 164, 182, 208, 217, 229, 241, 242, 243, 260, 264 git checkout master, 46 git clone, 30, 129, 131, 187, 191 git commit, 43, 58, 75, 116, 117, 128, 133, 134, 162, 199, 260 git config, 130, 183, 193, 227, 259, 265 git diff, 157, 183, 245, 248, 263, 265 git fetch, 188, 193, 195, 226, 227 git gc, 183 git gui, 132 git help add, 130 git help branch, 130 git help config, 130 git help init, 130 git init, 29, 130, 131, 141, 188 git log, 33, 91, 96, 104, 131, 132, 173, 255, 263, 265 git merge, 168, 170, 171, 173, 176, 178, 181, 183, 195, 217, 228, 233, 238, 239 git mv, 60 git prune, 164, 183 git pull, 72, 129, 193, 196, 198, 199, 228, 301 git push, 72, 129, 193, 199, 210, 217, 228, 301 git rebase, 116, 117, 119, 175, 176, 178, 181, 184, 217, 236, 238, 240, 264 git reflog, 100, 137, 184 git remote, 227 git remote add, 192, 222, 225, 227, 301 git remote add origin, 188, 191, 219, 220, 226 git remote rm, 227 git reset, 39, 86, 116, 133, 157, 173, 178, 184, 189, 226 git revert, 116, 120, 127, 181 git rev-list, 137 git rev-parse, 101, 137 git rm, 51, 59, 134 git shortlog, 131 git show, 85, 242, 243, 264 git simple commits, 121 git simple-commit, 110, 112 git simple-loop, 111 git status, 68, 75, 128, 133, 182 git symbolic, 182 git tag, 84 gitk, 132 skrót, 107 ssh, 24 wc, 24 konflikt, 233, 236, 263 binarny, 238, 242, 263 dublowanie, 238 tekstowy, 233, 236, 242, 263 konsola, 25, 26 bash, 26 kontekst, 248 kontrola akceptowanych rewizji, 269 spójnoĞci danych, 129 uprawnieĔ uĪytkowników, 269 kopia bezpieczeĔstwa, 30, 291 L Linux, 278 lokalnoĞü, 129 Skorowidz M menu kontekstowe, 26 Mercurial, 270 migawka, Patrz: snapshot N nazwa symboliczna HEAD, 93, 96 O obszar roboczy, 39, 56, 72, 127, 128, 132, 148, 198, 211, 245 openssh, 278 operacja zatwierdzania, 15, 16 P pakiet openssh, 278 parent, Patrz: rodzic plik aktualny, 51, 52, 54, 128 binarny, 257 dodany, 69 git/HEAD, 93 git/info/exclude, 75, 76, 135 gitattributes, 258, 261 gitignore, 75, 76, 135 ignorowany, 53, 75, 78, 128 konfiguracyjny, 76, 131 konfiguracyjny gitconfig, 107 nieignorowany, 53, 78, 128 nieĞledzony, 51, 52, 53, 57 niezaindeksowany, 53, 54, 56, 59, 128 o zmienionej nazwie, 69 odpowiadające rewizji, 89 przywracanie, 40 stan, 68, 127 stan dwuliterowy, 69 tekstowy, 238, 257 usuniĊty, Patrz: plik usuniĊty zaindeksowany, 53, 56, 128 zmiana nazwy, 60 zmieniony, 255 zmodyfikowany, 51, 52, 69 polecenie, Patrz: komenda praca grupowa, 18, 30, 127, 233, 291, 293 program GitPad, 28 projekt historia, 18, 33, 36, 115, 116, 125, 127 hosting, 19 stan, 17, 108, 125 327 protokóá file, 277 Git, 277 HTTPS, 277 SSH, 277, 280 przestrzeĔ robocza, 51, 52 przewijanie do przodu, 168, 169, 199, 223 przodek, 96 pull request, Patrz: Īądanie aktualizacji R repo, Patrz: repozytorium repository, Patrz: repozytorium bare, Patrz: repozytorium surowe repozytorium, 14, 18, 29, 30, 39, 48, 52, 56, 127, 128, 141 gáówne, 216 inicjalizowanie, 29 klonowanie, 30, 187, 188, 191, 293, 301, 302 lokalne, 187, 188, 195, 198, 199, 225, 302 áączenie, 219, 223 o historii nieliniowej, 94 prywatne, 271, 291, 292 publiczne, 271 stan, 61 surowe, 72, 198, 216, 226 synchronizacja, 195, 225 Ğledzone, 272 tworzenie, 283, 287 uaktualnianie, 197, 199 wspóádzielenie, 269, 293 zdalne, 187, 188, 192, 193, 195, 199, 209, 211, 219, 225, 280 zwykáe, 72, 210 revision, Patrz: rewizja revision control system, Patrz: system kontroli wersji rewizja, 16, 18, 34, 45, 52, 127, 156, 245 akceptowana, 269 domyĞlna, 93 graf niespójny, 223 identyfikacja, 91, 92, 93, 100 identyfikator, 34 áączenie, 115, 117, 119 tworzenie, 58, 142, 143 usuwanie, 115, 116, 127 zabezpieczanie przed utratą, 209 zgubiona, 149, 163 rodzic, 95, 96, 97 rozgaáĊzianie, 293 328 Git. Rozproszony system kontroli wersji S serwer bitbucket.org, 25 SSH, 25 skrót SHA-1, 91, 92, 96, 129, 148, 154, 164, 195 snapshot, 44 Source Forge, 19 stan detached HEAD, 148, 163, 164, 181, 236, 237 stan projektu, Patrz: projekt stan strumieĔ przekierowanie, 102 system jądro, 13 kontroli rewizji, Patrz: system kontroli wersji kontroli 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 T tag, Patrz: znacznik annotated, Patrz: znacznik opisany lightweight, Patrz: znacznik lekki U ujednolicony format opisu, 246 V vi, 28, 59 W wiersz poleceĔ, 26, 102 working area, Patrz: obszar roboczy working directory, Patrz: obszar roboczy Z zmienna Ğrodowiskowa PATH, 23 znacznik, 83, 92, 96, 156, 291 dane, 85 dostĊpnoĞü, 85, 136 konfliktu, 234 lekki, 83, 84 opisany, 83, 84 tworzenie, 136 usuwanie, 85, 136 znak !, 108 , 102, 103 ^, 97, 98, 99, 102 |, 102 , 102 , 102 koĔca wiersza, 259, 260, 261 tylda, 96, 98, 99 záamania wiersza, 24 ē Īądanie aktualizacji, 269, 293, 294, 301, 303, 319
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Git. Rozproszony system kontroli wersji
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: