際際滷

際際滷Share a Scribd company logo
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Tak.




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Tak.
                                  Po prostu.



Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
@ktosopl                                         github.com/ktoso




                                  blog.project13.pl


Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Masz pytanie?
Nie czekaj do koca prezentacji!
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
永看沿姻看壊噛...
             Pytanie do publicznoci




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Wa甜ne sowa
                                            (-: WA纏NE :-)

                                  System kontroli wersji
                         Scentralizowany czy Zdecentralizowany
                                    (CVCS vs DVCS)

                                              Zesp坦
                                             Wsp坦praca

                                                Zmiany
                                            Diff (r坦甜nice)

                                          Integracja zmian

                                             Sowniczek:
                                               Commit
                                              Snapshot
                                               Konflikt
                                                Branch

Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
git-ninijitsu


 Config
                      Stash               Fetch                    Rebase
 Init                                     Pull                     Add --patch
 Clone                Branch
                      Checkout            Push                     Grep
 Add / Stage          Merge                                        Bisect
 Reset                                    Daemon                   Blame
 Status               Stash
 Commit                                                            Gc
                      Diff
 Log                                                               Format-patch
 Gitk
                                                                   Svn
 Git gui




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Centralized SCM World

                                                               Jedno jedyne repozytorium
                                                               One to Rule Them All




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Svn UDAJE branche i tagi




                                      /tags/...
                                      /branches/...
                                      /trunk/...


Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Helo (Git) World!
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Bardzo skomplikowany setup ;-)



                                        Git init .




                                        (Przyjrzymy si strukturze plik坦w git za moment na 甜ywo)

Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
SCM Wars: Attack of the clones




                      Git clone file:///home/ktoso/coding/intellij
                      Git clone ssh://ktoso@dynames/repository
                      Git clone http://git.project13.pl/pub/repository
                      Git clone https://git.project13.pl/pub/repository
                      Git clone git://git.project13.pl/git/repository.git
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
./git/index AKA Staging Area




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
./git/index AKA Staging Area




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
./git/index AKA Staging Area




                                               =
                             indeks poniewa甜 istnieje plik .git/index
                     staging area poniewa甜 idealnie obrazuje jego dziaanie


Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Commit jest LOKALNY




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Commit jest LOKALNY




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Commit thyself, Lancelot!




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Local (internal details) workflow




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Local (internal details) workflow




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Local (internal details) workflow




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Local (internal details) workflow




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Local (internal details) workflow




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Local (internal details) workflow




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
ALL Git Objects on 1 slide!




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Nie ma treci = nie ma nic.




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
BRANCH + MERGE




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
BRANCH + MERGE




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
BRANCH + MERGE




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
BRANCH + MERGE




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Przykad
Real Life




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Przykad
Real Life




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Przykad
Real Life




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Przykad
Real Life




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
So many heads...?




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
There's just one .git/HEAD
$ Git branch
* master
  fire
  snake




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
There's just one .git/HEAD




                                  Git checkout fire




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
There's just one .git/HEAD
$ Git branch
  master
* fire
  snake




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Nowy branch = trywialne




                        Git branch niebieski




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Nowy branch = trywialne


                        Git branch niebieski




                        Git checkout niebieski



Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Nowy branch, trywialniej




                        Git checkout -b niebieski




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git merge zielony




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git merge zielony




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git merge zielony




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Fast Forward merge strategy




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git merge zielony --no-ff




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git branch -d zielony



                                  Git branch -d




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
STASH




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
OCTOPUS




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
OCTOPUS (Merge Engine)
                                 Git checkout master
                                Git merge feature-45 fix




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Shall I push or shall I pull..?




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Introducing: the buttler (server)

                        Git serve




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Introducing: the buttler (server)

                        Git serve

                          git daemon 
                                 --reuseaddr 
                                 --verbose 
                                 --base-path=. 
                                 --export-all 
                                 ./.git

                          Git config alias.serve ...




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Introducing: the buttler (server)

                        Git serve




                          Git clone git://buttler/repo.git




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Introducing: the buttler (server)

                        Git serve




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
The good old way - Patches




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
The good old way - Patches




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
The good old way - Patches




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Typical
Open Source
   Flow




 Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Typical
Open Source
   Flow




 Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Typical
Open Source
   Flow




 Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Typical
Open Source
   Flow




 Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Typical
Open Source
   Flow




 Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
git rebase

Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git rebase --interactive HEAD^^




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git rebase --interactive HEAD^^




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Rebase = Zmiana bazy




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Rebase = Zmiana bazy




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Rebase = Zmiana bazy




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Rebase = Zmiana bazy




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Rebase = Rewind + Replay




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git cherry-pick hs4f7z




       hs4f7z569sp




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git cherry-pick hs4f7z




       hs4f7z569sp




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
TAG




                            Git tag release-1.0




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
TAG




                            Git tag release-1.0
                                     =
svn copy http://svn.example.com/repos/calc/trunk 
         http://svn.example.com/repos/calc/tags/release-1.0 
      -m "Tagging the 1.0 release of the 'calc' project."



Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git svn ...




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git svn ...




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git svn ...




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Git svn ...




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Poznalimy r坦wnie甜 podstawy:




                                                                             Bazaar




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Final bunch of links:
                                Best Resources:
                                 Git-scm.com

                                 Git.wiki.kernel.org

                                 Progit.org (Creative Commons Book)

                                 Gitref.org

                                 ...blogs!




                                Public OpenSource (or $$$ private) hosting:
                                 Github.com

                                 Sourceforge.net

                                 Assembla.com

                                 Gitorious.org

                                 Gitenterprise.com




                                Private Hosting:
                                 Google -> gitosis

                                 Google -> gitolite




                                Other:
                                 Google -> git refcard

                                 Google -> successful git workflow




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
鼻
                                                                      (DZIKUJ)
                                                               ZA UWAG!




Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011
Pytanie Bonusowe...
git init .
touch me                                                                                             .org

mkdir folder
git stage .
git commit -am 'Initial commit'
tree .git/objects/
fortune > anything.txt
git add .
git commit -am 
  'How many git objects exist now ?'



Konrad Ktoso Malawski  konrad.malawski@java.pl - @ktosopl  blog.project13.pl - SFI 2011 - 11.03.2011

More Related Content

Git tak po prostu (SFI version)

  • 1. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 2. Tak. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 3. Tak. Po prostu. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 4. @ktosopl github.com/ktoso blog.project13.pl Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 5. Masz pytanie? Nie czekaj do koca prezentacji! Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 6. 永看沿姻看壊噛... Pytanie do publicznoci Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 7. Wa甜ne sowa (-: WA纏NE :-) System kontroli wersji Scentralizowany czy Zdecentralizowany (CVCS vs DVCS) Zesp坦 Wsp坦praca Zmiany Diff (r坦甜nice) Integracja zmian Sowniczek: Commit Snapshot Konflikt Branch Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 8. git-ninijitsu Config Stash Fetch Rebase Init Pull Add --patch Clone Branch Checkout Push Grep Add / Stage Merge Bisect Reset Daemon Blame Status Stash Commit Gc Diff Log Format-patch Gitk Svn Git gui Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 9. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 10. Centralized SCM World Jedno jedyne repozytorium One to Rule Them All Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 11. Svn UDAJE branche i tagi /tags/... /branches/... /trunk/... Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 12. Helo (Git) World! Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 13. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 14. Bardzo skomplikowany setup ;-) Git init . (Przyjrzymy si strukturze plik坦w git za moment na 甜ywo) Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 15. SCM Wars: Attack of the clones Git clone file:///home/ktoso/coding/intellij Git clone ssh://ktoso@dynames/repository Git clone http://git.project13.pl/pub/repository Git clone https://git.project13.pl/pub/repository Git clone git://git.project13.pl/git/repository.git Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 16. ./git/index AKA Staging Area Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 17. ./git/index AKA Staging Area Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 18. ./git/index AKA Staging Area = indeks poniewa甜 istnieje plik .git/index staging area poniewa甜 idealnie obrazuje jego dziaanie Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 19. Commit jest LOKALNY Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 20. Commit jest LOKALNY Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 21. Commit thyself, Lancelot! Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 22. Local (internal details) workflow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 23. Local (internal details) workflow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 24. Local (internal details) workflow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 25. Local (internal details) workflow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 26. Local (internal details) workflow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 27. Local (internal details) workflow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 28. ALL Git Objects on 1 slide! Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 29. Nie ma treci = nie ma nic. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 30. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 31. BRANCH + MERGE Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 32. BRANCH + MERGE Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 33. BRANCH + MERGE Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 34. BRANCH + MERGE Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 35. Przykad Real Life Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 36. Przykad Real Life Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 37. Przykad Real Life Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 38. Przykad Real Life Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 39. So many heads...? Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 40. There's just one .git/HEAD $ Git branch * master fire snake Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 41. There's just one .git/HEAD Git checkout fire Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 42. There's just one .git/HEAD $ Git branch master * fire snake Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 43. Nowy branch = trywialne Git branch niebieski Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 44. Nowy branch = trywialne Git branch niebieski Git checkout niebieski Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 45. Nowy branch, trywialniej Git checkout -b niebieski Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 46. Git merge zielony Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 47. Git merge zielony Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 48. Git merge zielony Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 49. Fast Forward merge strategy Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 50. Git merge zielony --no-ff Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 51. Git branch -d zielony Git branch -d Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 52. STASH Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 53. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 54. OCTOPUS Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 55. OCTOPUS (Merge Engine) Git checkout master Git merge feature-45 fix Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 56. Shall I push or shall I pull..? Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 57. Introducing: the buttler (server) Git serve Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 58. Introducing: the buttler (server) Git serve git daemon --reuseaddr --verbose --base-path=. --export-all ./.git Git config alias.serve ... Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 59. Introducing: the buttler (server) Git serve Git clone git://buttler/repo.git Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 60. Introducing: the buttler (server) Git serve Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 61. The good old way - Patches Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 62. The good old way - Patches Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 63. The good old way - Patches Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 64. Typical Open Source Flow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 65. Typical Open Source Flow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 66. Typical Open Source Flow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 67. Typical Open Source Flow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 68. Typical Open Source Flow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 69. Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 70. git rebase Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 71. Git rebase --interactive HEAD^^ Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 72. Git rebase --interactive HEAD^^ Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 73. Rebase = Zmiana bazy Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 74. Rebase = Zmiana bazy Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 75. Rebase = Zmiana bazy Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 76. Rebase = Zmiana bazy Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 77. Rebase = Rewind + Replay Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 78. Git cherry-pick hs4f7z hs4f7z569sp Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 79. Git cherry-pick hs4f7z hs4f7z569sp Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 80. TAG Git tag release-1.0 Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 81. TAG Git tag release-1.0 = svn copy http://svn.example.com/repos/calc/trunk http://svn.example.com/repos/calc/tags/release-1.0 -m "Tagging the 1.0 release of the 'calc' project." Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 82. Git svn ... Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 83. Git svn ... Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 84. Git svn ... Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 85. Git svn ... Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 86. Poznalimy r坦wnie甜 podstawy: Bazaar Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 87. Final bunch of links: Best Resources: Git-scm.com Git.wiki.kernel.org Progit.org (Creative Commons Book) Gitref.org ...blogs! Public OpenSource (or $$$ private) hosting: Github.com Sourceforge.net Assembla.com Gitorious.org Gitenterprise.com Private Hosting: Google -> gitosis Google -> gitolite Other: Google -> git refcard Google -> successful git workflow Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 88. (DZIKUJ) ZA UWAG! Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011
  • 89. Pytanie Bonusowe... git init . touch me .org mkdir folder git stage . git commit -am 'Initial commit' tree .git/objects/ fortune > anything.txt git add . git commit -am 'How many git objects exist now ?' Konrad Ktoso Malawski konrad.malawski@java.pl - @ktosopl blog.project13.pl - SFI 2011 - 11.03.2011