Dlaczego git to nie svn oraz dlaczego to dobrze ?
-
Upload
xsolve-sp-z-oo -
Category
Technology
-
view
1.135 -
download
3
description
Transcript of Dlaczego git to nie svn oraz dlaczego to dobrze ?
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
Przyjemne rzeczy w Git:rozproszony - zazwyczaj pracujemy lokalnieszybkimałymodel 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?
Przyjemne rzeczy w Git:rozproszony - zazwyczaj pracujemy lokalnieszybkimałymodel 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?
Przyjemne rzeczy w Git:rozproszony - zazwyczaj pracujemy lokalnieszybkimałymodel 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?
Przyjemne rzeczy w Git:rozproszony - zazwyczaj pracujemy lokalnieszybkimałymodel 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?
Przyjemne rzeczy w Git:rozproszony - zazwyczaj pracujemy lokalnieszybkimałymodel 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?
Przyjemne rzeczy w Git:rozproszony - zazwyczaj pracujemy lokalnieszybkimałymodel 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?
W SVN repozytorium jest Bogiem...
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
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?
Typowy workflow:
SVNsvn 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?
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?
Git jest szybki bo pracuje lokalnie!Jedyne komendy wymagające połączenia ze światem zewnętrznymto pull oraz push.
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
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?
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?
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?
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?
Porozmawiajmy o branch i merge!
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
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?
’Prawdziwe’ branch+merge wygląda tak:
SVN trochę kłamie twierdząc że wspiera branche... W efekciezawsze 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?
Tak zwany merge w SVN» cd calc/trunk» svn updateAt revision 405.» svn merge -r 341:HEADhttp://svn.example.com/repos/calc/branches/my-calc-branchU integer.cU button.cU Makefile» svn statusM integer.cM button.cM Makefile// właściwe mergowanie oglądanie diffów, testowanie czy działa...» svn commit -m "Merged my-calc-branch changes r341:405 intothe trunk."
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
’Prawdziwy’ merge w Git (master można rozumieć jako ’takitrunk’):
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?
Pozostałe ’zabawki’:branch oraz merge - ’killer features’ Git’atag - tagowanie konkretnych miejsc w historii projektustash - ’taki schowek’ - schowa moje obecne zmiany, ale mogędo nich wrócić..gitignore - prosty sposób ignorowania plikówrebase - do zmiany historii drzewa drzewka projektu (wuproszczeniu). Uwaga, może być niebezpieczne.
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
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 tag0.50.91.0.BETA
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
Przykład stashowania:Chcę zrobić pull, jednak pisałem coś już u siebie więc git zabronimi 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?
Inny use-case, to jeżeli wiem że moje zmiany są ’do niczego’, stashpozbędzie mi się ich natychmiast.Listowanie obecnych stashy jest równie intuicyjne.
Git» git stash liststash@0: WIP on master: 18c8a19 Nowe ładne przyciski (nalicencji Public Domain)stash@1: WIP on master: 5731b35 Merge branch ’master’ ofgithub.com:ktoso/TravelingSalesman-NBP
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
.gitignore to wygodny sposób (plik) na zmuszenie gita abyignorował pliki pasujące do pewnych wzorców, na przykład:
.gitignore**.bak*.tmp*.classdist/*buildnbproject/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?
Potencjalne przeszkody:
Przyzwyczajonym do SVN, może być z początku trudno sięprzestawićNajlepszy interface to command line - co nie każdemu możeodpowiadać. Warto dodać, że jest wyśmienity.Dość nie wygodne korzystanie MS Windows — ChrisAniszczyk (RedHat) i inni ciężko pracują nad JGit (Javowaimplementacja) jednak jeszcze nadal odstaje od natywnejwersji.
Są ’pluginy’ do NetBeans, Eclipse (EGit) oraz Intellij – generalniejednak są nadal nie dojrzałe.
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
Poradniki i filmiki:Linus o SVN/CVS vs Githttp://www.youtube.com/watch?v=4XpnKHJAok8Fantastyczne darmowe (dla open) repo http://github.comMoja wideo-pomoc dla użytkowników windowshttp://www.youtube.com/watch?v=evb1P6MYqTkFajny blog z trafnymi opisami który wczoraj znalazłemhttp://hades.name/blog/Porównanie z innymi SCM (skrzywiony punkt widzeniatroszke) http://whygitisbetterthanx.com/
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?
Ogromne dzięki za uwagę!
[email protected]/ktoso
Konrad “Ktoso“ Malawski - 9 Lipca 2010 @ XSolve Dlaczego Git to nie SVN? Oraz dlaczego to dobrze?