[Polish] Podstawy git

[Polish] Podstawy git

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

0c9087813222ecf3d5ff0014488d50e1?s=128

Rafał Łasocha

June 13, 2012
Tweet

Transcript

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

  2. VCS • Version control system – system kontroli wersji •

    Scentralizowane (cvs, svn) • Zdecentralizowane (mercurial, git)
  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
  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.
  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
  6. Git – wady • Windows •

  7. Początki pracy z gitem • Stworzenie repozytorium • Dodanie innego

    klienta gita (np. serwera) tzw. 'remote'
  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)
  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łąź
  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)
  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)
  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
  13. • Git branch iss001 • Git checkout iss001 • Echo

    „zmiany” >> plik2 • Git add plik2 • Git merge master • Git checkout master • Git branch -d iss001
  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)
  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)
  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.
  17. Github • Social coding • Issue tracking, wiki • Wsparcie

    i komunikacja z innymi systemami dla deweloperów (Redmine, Campfire, powiadomienia) • Darmowy (po części)
  18. Bitbucket • Mniej popularny • Prywatne repozytoria za darmo •

    Obsługa zarówno gita, jak i mercuriala
  19. Pytania? http://swistak35.com @swistak35 on twitter/github/blip