Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
Przyjemne rzeczy w Git:
rozproszony - zazwyczaj pracujemy lokalnie
szybki
mały
model branch’owania (branch i merge są bana...
Przyjemne rzeczy w Git:
rozproszony - zazwyczaj pracujemy lokalnie
szybki
mały
model branch’owania (branch i merge są bana...
Przyjemne rzeczy w Git:
rozproszony - zazwyczaj pracujemy lokalnie
szybki
mały
model branch’owania (branch i merge są bana...
Przyjemne rzeczy w Git:
rozproszony - zazwyczaj pracujemy lokalnie
szybki
mały
model branch’owania (branch i merge są bana...
Przyjemne rzeczy w Git:
rozproszony - zazwyczaj pracujemy lokalnie
szybki
mały
model branch’owania (branch i merge są bana...
Przyjemne rzeczy w Git:
rozproszony - zazwyczaj pracujemy lokalnie
szybki
mały
model branch’owania (branch i merge są bana...
W SVN repozytorium jest Bogiem...
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego t...
W Git, źródła są w centrum uwagi!
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego t...
Typowy workflow:
SVN
svn commit -m ’moje super zmiany’
//cały świat widzi te zmiany
Git
//programowanie - coś zadziałało ’p...
Release often, release early.
— Eric S. Raymond
a więc również...
Commit often, commit early!
Konrad “Ktoso“ Malawski - 9 ...
Git jest szybki bo pracuje lokalnie!
Jedyne komendy wymagające połączenia ze światem zewnętrznym
to pull oraz push.
Konrad...
Lokalne
+
Szybkie
=
częstsze commity
=
mniej problemów typu ’ale przedtem działało...’
Konrad “Ktoso“ Malawski - 9 Lipca 2...
Lokalne
+
Szybkie
=
częstsze commity
=
mniej problemów typu ’ale przedtem działało...’
Konrad “Ktoso“ Malawski - 9 Lipca 2...
Lokalne
+
Szybkie
=
częstsze commity
=
mniej problemów typu ’ale przedtem działało...’
Konrad “Ktoso“ Malawski - 9 Lipca 2...
Lokalne
+
Szybkie
=
częstsze commity
=
mniej problemów typu ’ale przedtem działało...’
Konrad “Ktoso“ Malawski - 9 Lipca 2...
Porozmawiajmy o branch i merge!
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to ...
W SVN nie branchuje się zbyt często - powód?
Bardzo nie przyjemny merge!
W Git, branch i merge to przyjemność i robisz to ...
’Prawdziwe’ branch+merge wygląda tak:
SVN trochę kłamie twierdząc że wspiera branche... W efekcie
zawsze jest to:
Merge ro...
Tak zwany merge w SVN
» cd calc/trunk
» svn update
At revision 405.
» svn merge -r 341:HEAD
http://svn.example.com/repos/c...
’Prawdziwy’ merge w Git (master można rozumieć jako ’taki
trunk’):
Git
» git checkout master
// jakby zmiana ’brancha’...
...
Pozostałe ’zabawki’:
branch oraz merge - ’killer features’ Git’a
tag - tagowanie konkretnych miejsc w historii projektu
st...
Przykład tagowania:
Git
» git tag ’1.0.BETA’
» git push –tags
//dopiero teraz ten tag widzi cały świat
//listowanie tagów ...
Przykład stashowania:
Chcę zrobić pull, jednak pisałem coś już u siebie więc git zabroni
mi pull jeśli nie zrobię commit -...
Inny use-case, to jeżeli wiem że moje zmiany są ’do niczego’, stash
pozbędzie mi się ich natychmiast.
Listowanie obecnych ...
.gitignore to wygodny sposób (plik) na zmuszenie gita aby
ignorował pliki pasujące do pewnych wzorców, na przykład:
.gitig...
Potencjalne przeszkody:
Przyzwyczajonym do SVN, może być z początku trudno się
przestawić
Najlepszy interface to command l...
Poradniki i filmiki:
Linus o SVN/CVS vs Git
http://www.youtube.com/watch?v=4XpnKHJAok8
Fantastyczne darmowe (dla open) repo...
Ogromne dzięki za uwagę!
kmalawski@project13.pl
www.github.com/ktoso
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlacz...
Upcoming SlideShare
Loading in …5
×

Dlaczego git to nie svn oraz dlaczego to dobrze ?

1,181 views

Published on

Prezentacja developerów firmy XSolve.

XSolve jest prężnie działającą i wciąż rozwijającą się firmą informatyczną. Specjalizujemy się w znajdowaniu najnowszych i najlepszych rozwiązań dla sieci i oprogramowań komputerowych w zależności od potrzeb naszych klientów.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,181
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dlaczego git to nie svn oraz dlaczego to dobrze ?

  1. 1. Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  2. 2. Przyjemne rzeczy w Git: rozproszony - zazwyczaj pracujemy lokalnie szybki mały model branch’owania (branch i merge są banalne i sprawne) (mnie jeszcze cieszy) brak folderów .svn Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  3. 3. Przyjemne rzeczy w Git: rozproszony - zazwyczaj pracujemy lokalnie szybki mały model branch’owania (branch i merge są banalne i sprawne) (mnie jeszcze cieszy) brak folderów .svn Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  4. 4. Przyjemne rzeczy w Git: rozproszony - zazwyczaj pracujemy lokalnie szybki mały model branch’owania (branch i merge są banalne i sprawne) (mnie jeszcze cieszy) brak folderów .svn Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  5. 5. Przyjemne rzeczy w Git: rozproszony - zazwyczaj pracujemy lokalnie szybki mały model branch’owania (branch i merge są banalne i sprawne) (mnie jeszcze cieszy) brak folderów .svn Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  6. 6. Przyjemne rzeczy w Git: rozproszony - zazwyczaj pracujemy lokalnie szybki mały model branch’owania (branch i merge są banalne i sprawne) (mnie jeszcze cieszy) brak folderów .svn Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  7. 7. Przyjemne rzeczy w Git: rozproszony - zazwyczaj pracujemy lokalnie szybki mały model branch’owania (branch i merge są banalne i sprawne) (mnie jeszcze cieszy) brak folderów .svn Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  8. 8. W SVN repozytorium jest Bogiem... Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  9. 9. W Git, źródła są w centrum uwagi! Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  10. 10. Typowy workflow: SVN svn commit -m ’moje super zmiany’ //cały świat widzi te zmiany Git //programowanie - coś zadziałało ’prawie’ git add . && git commit -m ’chyba jestem na dobrej drodze’ //tylko ja widze te zmiany - na razie, mogę je jeszcze cofnąć //programowanie... udalo sie! git add . && git commit -m ’naprawione’ git push //caly swiat widzi te zmiany Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  11. 11. Release often, release early. — Eric S. Raymond a więc również... Commit often, commit early! Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  12. 12. Git jest szybki bo pracuje lokalnie! Jedyne komendy wymagające połączenia ze światem zewnętrznym to pull oraz push. Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  13. 13. Lokalne + Szybkie = częstsze commity = mniej problemów typu ’ale przedtem działało...’ Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  14. 14. Lokalne + Szybkie = częstsze commity = mniej problemów typu ’ale przedtem działało...’ Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  15. 15. Lokalne + Szybkie = częstsze commity = mniej problemów typu ’ale przedtem działało...’ Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  16. 16. Lokalne + Szybkie = częstsze commity = mniej problemów typu ’ale przedtem działało...’ Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  17. 17. Porozmawiajmy o branch i merge! Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  18. 18. W SVN nie branchuje się zbyt często - powód? Bardzo nie przyjemny merge! W Git, branch i merge to przyjemność i robisz to jak najczęściej! Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  19. 19. ’Prawdziwe’ branch+merge wygląda tak: SVN trochę kłamie twierdząc że wspiera branche... W efekcie zawsze jest to: Merge robimy z tym commit, od którego nasz branch pochodzi - pamiętacie? Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  20. 20. Tak zwany merge w SVN » cd calc/trunk » svn update At revision 405. » svn merge -r 341:HEAD http://svn.example.com/repos/calc/branches/my-calc-branch U integer.c U button.c U Makefile » svn status M integer.c M button.c M Makefile // właściwe mergowanie oglądanie diffów, testowanie czy działa... » svn commit -m "Merged my-calc-branch changes r341:405 into the trunk." Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  21. 21. ’Prawdziwy’ merge w Git (master można rozumieć jako ’taki trunk’): Git » git checkout master // jakby zmiana ’brancha’... » git merge mojBugfix // jakby byly konflikty - diffy i rozwiązywanie ich Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  22. 22. Pozostałe ’zabawki’: branch oraz merge - ’killer features’ Git’a tag - tagowanie konkretnych miejsc w historii projektu stash - ’taki schowek’ - schowa moje obecne zmiany, ale mogę do nich wrócić. .gitignore - prosty sposób ignorowania plików rebase - do zmiany historii drzewa drzewka projektu (w uproszczeniu). Uwaga, może być niebezpieczne. Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  23. 23. Przykład tagowania: Git » git tag ’1.0.BETA’ » git push –tags //dopiero teraz ten tag widzi cały świat //listowanie tagów jest równie proste » git tag 0.5 0.9 1.0.BETA Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  24. 24. Przykład stashowania: Chcę zrobić pull, jednak pisałem coś już u siebie więc git zabroni mi pull jeśli nie zrobię commit - czego mogę nie chcieć. Git » git pull //ERROR, ponieważ mam lokalne, nie commitowane zmiany » git stash »git pull //OK! Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  25. 25. Inny use-case, to jeżeli wiem że moje zmiany są ’do niczego’, stash pozbędzie mi się ich natychmiast. Listowanie obecnych stashy jest równie intuicyjne. Git » git stash list stash@0: WIP on master: 18c8a19 Nowe ładne przyciski (na licencji Public Domain) stash@1: WIP on master: 5731b35 Merge branch ’master’ of github.com:ktoso/TravelingSalesman-NBP Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  26. 26. .gitignore to wygodny sposób (plik) na zmuszenie gita aby ignorował pliki pasujące do pewnych wzorców, na przykład: .gitignore * *.bak *.tmp *.class dist/* build nbproject/private/platform-private.properties *platform-private.properties *nodes.xml Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  27. 27. Potencjalne przeszkody: Przyzwyczajonym do SVN, może być z początku trudno się przestawić Najlepszy interface to command line - co nie każdemu może odpowiadać. Warto dodać, że jest wyśmienity. Dość nie wygodne korzystanie MS Windows — Chris Aniszczyk (RedHat) i inni ciężko pracują nad JGit (Javowa implementacja) jednak jeszcze nadal odstaje od natywnej wersji. Są ’pluginy’ do NetBeans, Eclipse (EGit) oraz Intellij – generalnie jednak są nadal nie dojrzałe. Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  28. 28. Poradniki i filmiki: Linus o SVN/CVS vs Git http://www.youtube.com/watch?v=4XpnKHJAok8 Fantastyczne darmowe (dla open) repo http://github.com Moja wideo-pomoc dla użytkowników windows http://www.youtube.com/watch?v=evb1P6MYqTk Fajny blog z trafnymi opisami który wczoraj znalazłem http://hades.name/blog/ Porównanie z innymi SCM (skrzywiony punkt widzenia troszke) http://whygitisbetterthanx.com/ Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
  29. 29. Ogromne dzięki za uwagę! kmalawski@project13.pl www.github.com/ktoso Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?

×