You are previewing Kontrola wersji z systemem Git. Narzędzia i techniki programistów. Wydanie II.
O'Reilly logo
Kontrola wersji z systemem Git. Narzędzia i techniki programistów. Wydanie II

Book Description

<p>Systemy kontroli wersji przechodzą ciągłą ewolucję. Jeszcze niedawno popularny był system CVS, który został wyparty przez SVN. Ostatnie lata to inwazja rozproszonych systemów kontroli wersji z Gitem na czele. Git pozwala każdemu programiście na posiadanie prywatnego repozytorium i korzystanie z jego dobrodziejstw bez wpływu na inne repozytoria. Jesteś ciekaw, jakie jeszcze zalety ma Git?</p><p>Jeżeli tak, trafiłeś na idealną książkę, dzięki której błyskawicznie wkroczysz w świat Gita. Na początek krok po kroku przejdziesz przez proces instalacji, a następnie dostosujesz środowisko do swoich potrzeb. W kolejnych rozdziałach poznasz dostępne polecenia oraz nauczysz się zarządzać plikami. Ponadto przekonasz się, jak łatwo można stworzyć odgałęzienia kodu oraz przeglądać różnice pomiędzy wersjami pliku. Git posiada zaawansowane narzędzia do łączenia kodu - będziesz mógł je dogłębnie poznać. Na koniec przeczytasz o zaawansowanych możliwościach systemu Git, takich jak współpraca z SVN. Ta książka jest doskonałym podręcznikiem dla każdego początkującego użytkownika systemu Git, zaawansowani również znajdą tu sporo przydatnych informacji. Wykorzystaj potencjał Gita!</p><p><strong>Dzięki tej książce:</strong></p><ul> <li>odkryjesz rozproszone systemy kontroli wersji</li> <li>poznasz ich zalety</li> <li>zainstalujesz i skonfigurujesz system Git</li> <li>poznasz system kontroli wersji Git</li></ul><h4><strong>Wykorzystaj potencjał systemu kontroli wersji Git!</strong></h4>

Table of Contents

  1. Przedmowa
    1. Odbiorcy
    2. Zakładane środowisko
    3. Układ książki i rzeczy do pominięcia
    4. Konwencje stosowane w tej książce
    5. Zastosowanie przykładów w kodzie
    6. Podziękowania
    7. Prawa własności
  2. 1. Wprowadzenie
    1. Podstawy
    2. Narodziny Gita
    3. Poprzednicy
    4. Na osi czasu
    5. Cóż to za nazwa?
  3. 2. Instalowanie Gita
    1. Zastosowanie binarnych dystrybucji Linuksa
      1. Dystrybucje Debian lub Ubuntu
      2. Inne dystrybucje binarne
    2. Uzyskanie wydania źródłowego
    3. Budowanie i instalowanie
    4. Instalowanie Gita w systemie Windows
      1. Instalowanie pakietu Git w systemie Cygwin
      2. Instalowanie wolno stojącej wersji Gita (msysGit)
  4. 3. Na dobry początek
    1. Polecenie git
    2. Szybkie wprowadzenie do użytkowania Gita
      1. Tworzenie archiwum początkowego
      2. Dodawanie pliku do Twojego archiwum
      3. Konfigurowanie autora zatwierdzenia
      4. Wykonanie kolejnego zatwierdzenia
      5. Przeglądanie Twoich zatwierdzeń
      6. Przeglądanie różnic w zatwierdzeniach
      7. Usuwanie i przemianowywanie plików w Twoim archiwum
      8. Tworzenie kopii Twojego archiwum
    3. Pliki konfiguracyjne
      1. Konfigurowanie synonimu
    4. Zasięganie języka
  5. 4. Podstawowe koncepcje Gita
    1. Pojęcia podstawowe
    2. Archiwa
      1. Typy obiektów Gita
      2. Indeks
      3. Nazwy adresowane treścią
      4. Git nadzoruje treść
      5. Nazwy ścieżek a treść
      6. Pliki pakowane
    3. Obrazy magazynu obiektów
    4. Koncepcje Gita uwidocznione w działaniu
      1. Zawartość katalogu .git
      2. Obiekty, haszowania i bloby
      3. Pliki i drzewa
      4. Uwaga o zastosowaniu w Gicie algorytmu SHA1
      5. Hierarchie drzewiaste
      6. Zatwierdzenia
      7. Metki
  6. 5. Zarządzanie plikami a indeks
    1. Wszystko kręci się wokół indeksu
    2. Klasyfikacje plików w Gicie
    3. Użycie polecenia git add
    4. Kilka uwag o stosowaniu polecenia git commit
      1. Użycie polecenia git commit --all
      2. Zapisywanie komunikatów dziennika zatwierdzeń
    5. Użycie polecenia git rm
    6. Użycie polecenia git mv
    7. Uwaga o śledzeniu przemianowań
    8. Plik .gitignore
    9. Szczegółowy przegląd modelu obiektowego i plików Gita
  7. 6. Zatwierdzenia
    1. Niepodzielne zbiory zmian
    2. Identyfikowanie zatwierdzeń
      1. Bezwzględne nazwy zatwierdzeń
      2. Refy i symrefy
      3. Względne nazwy zatwierdzeń
    3. Historia zatwierdzeń
      1. Przeglądanie starych zatwierdzeń
      2. Grafy zatwierdzeń
        1. Użycie gitk do przeglądania grafu zatwierdzeń
      3. Przedziały zatwierdzeń
    4. Znajdowanie zatwierdzeń
      1. Użycie polecenia git bisect
      2. Użycie polecenia git blame
      3. Użycie kilofa
  8. 7. Odgałęzienia
    1. Powody stosowania odgałęzień
    2. Nazwy odgałęzień
      1. Co używać, a czego nie używać w nazwach odgałęzień
    3. Zastosowanie odgałęzień
    4. Tworzenie odgałęzień
    5. Sporządzanie wykazów nazw odgałęzień
    6. Przeglądanie odgałęzień
    7. Wyciąganie odgałęzień
      1. Elementarny przykład wyciągania odgałęzienia
      2. Wyciąganie w wypadku niezatwierdzonych zmian
      3. Łączenie zmian w nowe odgałęzienie
      4. Tworzenie i wyciąganie nowego odgałęzienia
      5. Wyosobnione odgałęzienia HEAD
    8. Usuwanie odgałęzień
  9. 8. Różnice
    1. Postaci polecenia git diff
    2. Prosty przykład polecenia git diff
    3. Polecenie git diff i przedziały zatwierdzeń
    4. Polecenie git diff z ograniczeniem ścieżki
    5. Porównanie wyprowadzania różnic w systemach Subversion i Git
  10. 9. Łączenia
    1. Przykłady łączeń
      1. Przygotowanie do łączenia
      2. Łączenie dwóch odgałęzień
      3. Konflikt w trakcie łączenia
    2. Postępowanie z konfliktami łączenia
      1. Lokalizowanie konfliktowych plików
      2. Badanie konfliktów
        1. Polecenie git diff z konfliktami
        2. Polecenie git log z konfliktami
      3. W jaki sposób Git śledzi konflikty
      4. Zakończenie rozwiązywania konfliktu
      5. Zaniechanie lub wznowienie łączenia
    3. Strategie łączenia
      1. Łączenia zdegenerowane
      2. Łączenia zwykłe
        1. Łączenia rekurencyjne
        2. Łączenie metodą ośmiornicy
      3. Łączenia specjalne
      4. Stosowanie strategii łączenia
      5. Sterowniki łączenia
    4. Jak Git rozpatruje łączenia
      1. Łączenia i model obiektowy Gita
      2. Łączenia zgniatane
      3. Czemu nie łączyć po prostu każdej zmiany po kolei?
  11. 10. Zmienianie zatwierdzeń
    1. Uwaga dotycząca zmieniania historii
    2. Użycie polecenia git reset
    3. Użycie polecenia git cherry-pick
    4. Użycie polecenia git revert
    5. Polecenia reset, revert i checkout
    6. Zmiana zatwierdzenia szczytowego
    7. Przebazowanie zatwierdzeń
      1. Użycie polecenia git rebase –i
      2. Operacja rebase a łączenie
  12. 11. Skrytka stash i rejestr odniesień reflog
    1. Skrytka
    2. Rejestr odniesień
  13. 12. Archiwa zdalne
    1. Koncepcje archiwum
      1. Archiwa czyste i rozwojowe
      2. Klony archiwów
      3. Piloty
      4. Odgałęzienia nadzorujące
    2. Odwoływanie się do innych archiwów
      1. Odwołania do archiwów zdalnych
      2. Refspec — specyfikator odniesienia
    3. Przykład użycia zdalnych archiwów
      1. Tworzenie archiwum wzorcowego
      2. Uczyń swój własny początek zdalnym
      3. Prowadzenie prac we własnym archiwum
      4. Wypychanie zmian
      5. Dodawanie nowego wykonawcy
      6. Pobieranie uaktualnień archiwum
        1. Krok pobierania
        2. Krok łączenia lub przebazowania
        3. Łączyć czy przebazowywać?
    4. Cykl rozwoju zdalnego archiwum w ujęciu rysunkowym
      1. Klonowanie archiwum
      2. Historie alternatywne
      3. Niespieszne wypychanie
      4. Pobieranie alternatywnej historii
      5. Łączenie historii
      6. Konflikty łączenia
      7. Wypychanie połączonej historii
    5. Konfigurowanie zdalne
      1. Użycie polecenia git remote
      2. Użycie polecenia git config
      3. Obróbka ręczna
    6. Działanie na odgałęzieniach nadzorowania
      1. Tworzenie gałęzi nadzorowania
      2. Przed i za
    7. Dodawanie i usuwanie odgałęzień zdalnych
    8. Archiwa czyste i polecenie git push
  14. 13. Zarządzanie archiwum
    1. Słowo o serwerach
    2. Publikowanie archiwów
      1. Archiwa z kontrolowanym dostępem
      2. Archiwa z anonimowym dostępem do czytania
        1. Upublicznianie archiwów za pomocą procesu git-daemon
        2. Upublicznianie archiwów za pomocą demona HTTP
        3. Upublicznianie archiwum za pomocą Smart HTTP
        4. Upublicznianie za pośrednictwem Gita i demonów HTTP
      3. Archiwa z anonimowym dostępem do pisania
      4. Publikowanie archiwum na koncie GitHub
    3. Wskazówka dotycząca publikowania archiwum
    4. Struktura archiwum
      1. Struktura archiwum dzielonego
      2. Struktura archiwum rozproszonego
      3. Przykłady struktur archiwów
    5. Jak żyć w warunkach rozproszenia
      1. Zmienianie historii upublicznionej
      2. Rozdzielność kroków zatwierdzeń i publikowania
      3. Ani jednej historii prawdziwej
    6. Znaj swoje miejsce
      1. Przepływy w górę i w dół
      2. Role pielęgnatora i budowniczego
      3. Współpraca między pielęgnatorem a budowniczym
      4. Dualność ról
    7. Praca z wieloma archiwami
      1. Twoja własna przestrzeń robocza
      2. Gdzie rozpocząć swoje archiwum
      3. Przekształcenie w inne archiwum w górze
      4. Używanie wielu górnych archiwów
      5. Rozwidlanie projektów
        1. Czy rozwidlanie projektu jest naganne?
        2. Usuwanie rozbieżności w rozwidleniach
        3. Rozwidlanie projektów w GitHubie
  15. 14. Łaty
    1. Dlaczego używamy łat?
    2. Generowanie łat
      1. Łaty i sortowanie topologiczne
    3. Pocztowe ekspediowanie łat
    4. Stosowanie łat
    5. Złe łaty
    6. Łatanie a łączenie
  16. 15. Doczepki
    1. Instalowanie doczepek
      1. Doczepki przykładowe
      2. Utworzenie pierwszej doczepki
    2. Dostępne doczepki
      1. Doczepki powiązane z zatwierdzeniami
      2. Doczepki powiązane z łatami
      3. Doczepki powiązane z wypychaniem
      4. Inne doczepki do lokalnego archiwum
  17. 16. Zestawianie projektów
    1. Stare rozwiązanie: wyciągi częściowe
    2. Rozwiązanie oczywiste: zaimportuj kod do swojego projektu
      1. Importowanie podprojektów przez kopiowanie
      2. Importowanie podprojektów poleceniem git pull –s subtree
      3. Kierowanie swoich zmian w górę
    3. Rozwiązanie zautomatyzowane: wyciąganie podprojektów z użyciem odpowiednich skryptów
    4. Rozwiązanie rodzime: gitlinki i git submodule
      1. Odsyłacze gitlinks
      2. Polecenie git submodule
  18. 17. Najlepsze praktyki dotyczące podmodułów
    1. Polecenia podmodułowe
    2. Dlaczego podmoduły?
    3. Przygotowywanie podmodułów
    4. Dlaczego tylko do czytania?
    5. Dlaczego nie tylko do czytania?
    6. Sprawdzanie haszowań zatwierdzeń podmodułów
    7. Ponowne wykorzystanie pełnomocnictw
    8. Przypadki użycia
    9. Wielopoziomowe zagnieżdżanie archiwów
    10. Podmoduły na horyzoncie
  19. 18. Zastosowanie Gita do archiwów systemu Subversion
    1. Przykład: płytki klon jednego odgałęzienia
      1. Pora na wykonywanie zmian w Gicie
      2. Pobranie przed zatwierdzeniem
      3. Zatwierdzanie za pomocą git svn rebase
    2. Wypychanie, ciągnięcie, rozgałęzianie i łączenie za pomocą git svn
      1. Utrzymywanie prostoty identyfikatorów zatwierdzeń
      2. Klonowanie wszystkich gałęzi
      3. Dzielenie Twojego archiwum
      4. Ponowne włączanie do Subversion
        1. Jak polecenie dcommit dokonuje łączeń
    3. Inne uwagi o pracy z systemem Subversion
      1. Cecha svn:ignore a plik .gitignore
      2. Rekonstruowanie pamięci podręcznej git-svn
  20. 19. Działania zaawansowane
    1. Użycie polecenia git filter-branch
      1. Przykłady użycia polecenia git filter-branch
        1. Zastosowanie git filter-branch do wymazania pliku
        2. Zastosowanie filter-branch do redagowania komunikatu zatwierdzenia
      2. Pułapki filter-branch
    2. Jak pokochałem polecenie git rev-list
      1. Wyciąganie według daty
        1. Przestrogi dotyczące wyciągania według daty
      2. Odzyskiwanie starej wersji pliku
    3. Interaktywne wystawianie kawałków
    4. Rekonstruowanie utraconego zatwierdzenia
      1. Polecenie git fsck
      2. Ponowne przyłączenie utraconego zatwierdzenia
  21. 20. Rady, chwyty i sposoby
    1. Interaktywne przebazowanie z zabrudzonym katalogiem roboczym
    2. Usuwanie zbędnych plików edytora
    3. Łączenie nieużytków
    4. Podział archiwum
    5. Sposoby rekonstruowania zatwierdzeń
    6. Rady dotyczące konwersji Subversion
      1. Ogólne zalecenia
      2. Usuwanie trzonu po zaimportowaniu SVN
      3. Usuwanie identyfikatorów zatwierdzeń SVN
    7. Manipulowanie odgałęzieniami pochodzącymi z dwu archiwów
    8. Odzyskiwanie z przebazowania w górze
    9. Tworzenie własnych poleceń w Gicie
    10. Szybki przegląd zmian
    11. Czyszczenie
    12. Użycie polecenia git-grep do przeszukiwania archiwum
    13. Aktualizowanie i usuwanie refów
    14. Postępowanie za przemieszczonymi plikami
    15. Zachowaj ten plik, lecz go nie nadzoruj
    16. Byłeś tu już wcześniej?
  22. 21. Git i GitHub
    1. Archiwum kodu powszechnie dostępnego
    2. Tworzenie archiwum w GitHubie
    3. Kodowanie społeczne na otwartych źródłach
    4. Obserwatorzy
    5. Kanał informacyjny
    6. Rozwidlenia
    7. Przygotowywanie zamówień ciągnięcia
    8. Obsługiwanie zamówień ciągnięcia
    9. Powiadomienia
    10. Odnajdywanie użytkowników, projektów i kodu
    11. Wikisy
    12. Strony GitHuba (Git do witryn)
    13. Edytor kodu wprost ze strony
    14. Most do systemu Subversion
    15. Metki automatycznie zamieniane na pliki archiwalne
    16. Organizacje
    17. Interfejs REST API
    18. Kodowanie społeczne oparte na źródłach zamkniętych
    19. Docelowe czerpanie z otwartych źródeł
    20. Modele kodowania
    21. GitHub jako inicjatywa gospodarcza
    22. GitHub — podsumowanie
  23. A. O autorach
  24. Kolofon
  25. Indeks
  26. Copyright