Kontrola wersji z systemem Git. Narz?dzia i techniki programistów. Wydanie II

Book description

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?

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!

Dzi?ki tej ksi??ce:

  • odkryjesz rozproszone systemy kontroli wersji
  • poznasz ich zalety
  • zainstalujesz i skonfigurujesz system Git
  • poznasz system kontroli wersji Git

Wykorzystaj potencja? systemu kontroli wersji Git!

Table of contents

  1. Kontrola wersji z systemem Git. Narzędzia i techniki programistów
  2. 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
  3. 1. Wprowadzenie
    1. Podstawy
    2. Narodziny Gita
    3. Poprzednicy
    4. Na osi czasu
    5. Cóż to za nazwa?
  4. 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)
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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ń
  10. 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
  11. 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?
  12. 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
  13. 11. Skrytka stash i rejestr odniesień reflog
    1. Skrytka
    2. Rejestr odniesień
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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?
  23. 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
  24. A. O autorach
  25. Kolofon
  26. Indeks
  27. Copyright

Product information

  • Title: Kontrola wersji z systemem Git. Narz?dzia i techniki programistów. Wydanie II
  • Author(s): Jon Loeliger, Matthew McCullough
  • Release date: February 2014
  • Publisher(s): Helion
  • ISBN: 9781492013822