Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Polish] Podstawy git

[Polish] Podstawy git

[Polish] Podstawy git
Spotkanie Nazgula (http://nazgul.edu.pl/)
13.06.2012

Rafał Łasocha

June 13, 2012
Tweet

More Decks by Rafał Łasocha

Other Decks in Programming

Transcript

  1. GIT - podstawy
    Autor: Rafał Łasocha
    http://swistak35.com
    Twitter: @swistak35

    View full-size slide

  2. VCS

    Version control system – system kontroli
    wersji

    Scentralizowane (cvs, svn)

    Zdecentralizowane (mercurial, git)

    View full-size slide

  3. Zalety korzystania z VCS

    Back-up

    Możliwość programowania w grupie

    Dostęp do wszystkich zmian i wersji projektu
    pod ręką

    Kontrola nad tym, co się dzieje w projekcie i
    kto jest za co odpowiedzialny

    Pozbycie się śmieciowych komentarzy w
    kodzie

    View full-size slide

  4. Git - historia

    Autor: Linus Torvalds

    Wziąć przykład z CVS, czego nie robić.

    System powinien być rozproszony.

    System powinien być chroniony przed błędami
    w repozytorium

    System powinien być szybki.

    View full-size slide

  5. Git - zalety

    Nie potrzebuje połączenia z internetem, aby
    zatwierdzić zmiany

    Szybki, a jednocześnie ma olbrzymi zasób
    narzędzi

    Bardzo dobre rozwiązywanie konfliktów

    Łatwy w użyciu i przy tworzeniu nowych
    repozytoriów

    Social coding - github

    View full-size slide

  6. Git – wady

    Windows

    View full-size slide

  7. Początki pracy z gitem

    Stworzenie repozytorium

    Dodanie innego klienta gita (np. serwera) tzw.
    'remote'

    View full-size slide

  8. „Stany” plików w repozytorium

    Modyfikacja pliku

    Dodanie go do 'obserwowanych' przez git

    Staging – dodanie pliku do aktualnie
    „przygotowywanego” commitu

    Commit – zatwierdzenie zmian w plikach

    Push – wysłanie plików na serwer
    (nieobowiązkowe)

    View full-size slide

  9. Praca z gałęziami
    1.Dostajemy zadanie
    2.Tworzymy branch (gałąź) specjalnie dla tego
    zadania
    3.Projektujemy i implementujemy
    4.Łączymy aktualny gałąź z gałęzią główną
    5.Usuwamy gałąź

    View full-size slide

  10. Podstawowe polecenia

    Git init . (tworzy repozytorium gita w aktualnym
    katalogu)

    Git add file (dodaje plik do najbliższego
    commita, tzw. staging area)

    Git commit (finalizuje zmianę)

    Git push origin master (wysyła gałąź master
    na główny serwer gita)

    View full-size slide


  11. Git pull origin master (pobiera dane)

    Git merge master (scala gałęzie)

    Git branch testing (tworzy gałąź)

    Git checkout testing (zmienia gałąź)

    Git branch -d testing (usuwa gałąź)

    Git clone http://... (kopiuje repozytorium na
    nasz dysk)

    View full-size slide

  12. Przykładowy workflow

    Mkdir my_project

    Cd my_project

    Touch plik1.rb plik2.rb readme changelog

    … // robimy jakieś zmiany w plikach

    Git add .

    Git commit -m 'pierwszy'

    Git push origin master

    View full-size slide


  13. Git branch iss001

    Git checkout iss001

    Echo „zmiany” >> plik2

    Git add plik2

    Git merge master

    Git checkout master

    Git branch -d iss001

    View full-size slide

  14. Pomocne polecenia

    Git revert (cofa do określonego commita)

    Git commit –amend (dopisuje aktualne zmiany
    do poprzedniego commita)

    Git reset HEAD file (unstaging)

    Git checkout - - file (usunięcie aktualnych
    zmian, cofnięcie do ostatnio commitowanej
    wersji)

    View full-size slide


  15. Git log (logi poprzednich commitów)

    Git status (aktualny status commita, pliki
    'staging', pliki które są zmienione, etc.)

    Git diff (porównywanie plików)

    View full-size slide

  16. Hooks

    Post-commit, post-update, post-receive,
    pre-..., etc.

    Hooki pozwalają na wykonywanie skryptów po
    określonych akcjach w repozytorium, np.
    restart serwera, itp.

    View full-size slide

  17. Github

    Social coding

    Issue tracking, wiki

    Wsparcie i komunikacja z innymi systemami
    dla deweloperów (Redmine, Campfire,
    powiadomienia)

    Darmowy (po części)

    View full-size slide

  18. Bitbucket

    Mniej popularny

    Prywatne repozytoria za darmo

    Obsługa zarówno gita, jak i mercuriala

    View full-size slide

  19. Pytania?
    http://swistak35.com
    @swistak35 on twitter/github/blip

    View full-size slide