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

NaZGUL #1: Wstęp do oprogramowania Git

NaZGUL #1: Wstęp do oprogramowania Git

Prezentacja z pierwszego spotkania Nieformalnej Zamojskiej Grupy Użytkowników Linuksa.
Autor: Rafał ‘swistak35′ Łasocha
Nagranie: http://www.youtube.com/watch?v=a_ok65NyOqo

More Decks by Nieformalna Zamojska Grupa Użytkowników Linuksa

Other Decks in Programming

Transcript

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

    Scentralizowane (cvs, svn) • Zdecentralizowane (mercurial, git)
  2. 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
  3. 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.
  4. 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
  5. „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)
  6. 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łąź
  7. 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)
  8. • 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)
  9. 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
  10. • Git branch iss001 • Git checkout iss001 • Echo

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

    i komunikacja z innymi systemami dla deweloperów (Redmine, Campfire, powiadomienia) • Darmowy (po części)