Versiecontrole met Git  Openminds TechTalk 14 september 2011              @openminds
Wat• Versiecontrole• Team-tool• Offline
git basis gebruik            demo gitimmersion - lab 3 tot lab 10
git: drie statussen• “unstaged” aanpassingen• “staged” aanpassingen• “committed” aanpassingen
Git: het geheim• Git slaat wijzigingen op• Het is geen snapshot van de files• Het is een verzameling/opeenvolging van  diffs
diffs, geen snapshots
diffs, geen snapshots
diffs, geen snapshots
diffs, geen snapshotsEen diff tussen 1 en 2
diffs, geen snapshotsEen diff tussen 1 en 2
diffs, geen snapshotsEen diff tussen 1 en 2
diff
git log
sha2ec50a5390f93ee7a52e5ba9edcdaa28e9d5dc4c88a7a694e6e4e91263bab2980b23d9d4aaceef89
Remotes
Remotesgit remote add origin git@gitserver.openminds.be:hello.git    Joren   Server   (origin)
git push origin masterJorenServer
git push origin masterJorenorigin
git push github master git remote add github git@github.com:hello.gitJorengithub
git pull origin masterJorenorigin
git pull origin masterJorenorigin
git cloneBramorigin
git clone git@gitserver.openminds.be:hello.gitBramorigin
Master• hoofd-lijn
HEAD• “vertrekpunt voor de volgende diff ”• uw plaats in de boom• ‘daar waar ge op aan het werken zijt’• een bol
HEAD - master   master-branch                   HEAD
git checkout 567hj87      master-branch             HEAD
git checkout master     master-branch                      HEAD
Tagsv1      v1.1
Branches
Branches
Branches
Branches
Branches
Branches           feature2           master           feature1
Branches        demogit immersion lab 24-28
Branches       feature2        master   feature1
git checkout master                HEAD
git checkout feature2                 HEAD
git checkout gh6789jHEAD
Merge
Merge
git merge feature1
git merge feature1   merged feature1 into master
git merge feature1         merged feature1 into master
Conflictenmaster-branch
Conflictenmaster-branch
Conflictenmaster-branch                 feature2-branch
Conflicten
Conflictengit merge feature2
Conflicten
Rebase                f   g        ea   b       c   d
git rebase feature1                    f   g            e    a   b       c   d   e
git rebase feature1                    f   g            e    a   b       c   d   e
git rebase feature1                    f   g            e    a   b       c   d   e   f
git rebase feature1                    f   g            e    a   b       c   d   e   f
git rebase feature1                    f   g            e    a   b       c   d   e   f   g
git rebase feature1                    f   g            e    a   b       c   d   e   f   g
git rebase master                   f   g           e   a   b       c   d
git rebase master                   e   a   b   c   d
git rebase master                   e   a   b   c   d
git rebase master                       f                   e   a   b   c   d
git rebase master                       f                   e   a   b   c   d
git rebase master                       f   g                   e   a   b   c   d
git rebase master                       f   g                   e   a   b   c   d
Conflicten
Remotes
RemotesjorenServerbram         HEAD
RemotesjorenServerbram            fetch         HEAD
Pull• eerst een fetch• dan rebase of merge
Pull - rebase of merge• kies maar• rebase legt het probleem bij jouw changes• merge moet je anderen hun changes  aanpassen
Dagelijks gebruik
Normale werkdag• git pull• <werk>• git push
Normaal <werk>• (maak veranderingen - programmeer)• git add• git commit• git rm• git mv ...
Doh!• van stage naar unstage:                       git reset HEAD filename• van commit naar niet-commit:                  ...
Doh!• unstaged wijzigingen weggooien                         git checkout filename• enkele commits weggooien               ...
Extra’s
cherry-picking
cherry-picking
aliases configureren     git immersion lab 11
.gitignore
submodules
bare / github / gitorious
git commit --amend
git bisect
boomstructuur en gc
git hooks
git send-email 5674h84hjks834
git stashgit stash pop
git add -i
git add -p hello.rb
git checkout branch --track remote/branch
git svn
GIT Immersionhttp://www.gitimmersion.com
Pro Githttp://progit.org/book/
Git Cheat Sheethttp://www.cheat-sheets.org/saved-copy/git-cheat-sheet-large.png
Bedankt!  www.openminds.be - @openminds     Managed hosting servicesPresentatie door @joren en @wonko_be
Git techtalk
Upcoming SlideShare
Loading in...5
×

Git techtalk

1,461

Published on

Openminds Git TechTalk
Een snelle vlucht door de basics van Git en enkele zeer nuttige tips.

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

No Downloads
Views
Total Views
1,461
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
20
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • naar de laatste commit van de master\n
  • \n
  • handig voor revisies, grote versies, werkpunten... er zijn lokale en gedeelde (annotated)\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • je moet natuurlijk branches weer kunnen samenvoegen\n
  • \n
  • \n
  • je bent de history van de commits wel niet kwijt, ook al delete je de branch\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • git status\ngit commit -a\ngit status\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • nu omgekeerd\nmaster rebase in de feature branch\n
  • de feature branch diffs wordt opnieuw toegepast op het einde/HEAD van de master\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • continue (na fix en add)\nskip \nabort (spoelt alles terug!)\n
  • \n
  • \n
  • \n
  • wij prefereren rebase\npull --rebase\nalgemene config\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • git st, git co, git ci, git hist\n
  • belangrijk, centraal en per project\n
  • leuk bij frameworks voor modules of plugins\ngit repo in git repo\n
  • \n
  • \n
  • goed en slechte commit aanduiden om zo de fout op te sporen\n
  • goed en slechte commit aanduiden om zo de fout op te sporen\n
  • hooks voor en na elke actie mogelijk in git\n
  • \n
  • code even wegsteken en weer ophalen\ngit stash list\ngit stash delete\n\n
  • interactive - niet gui, wel hulp\n
  • patch\n
  • een remote branch koppelen aan een lokale branch \npfjoew...\n
  • je kan migreren! geen reden meer om dat niet te doen!\n
  • thank you edgecase - stap voor stap voor beginners tot medium\n
  • free book! - get it!\n
  • free book! - get it!\n
  • \n
  • Git techtalk

    1. 1. Versiecontrole met Git Openminds TechTalk 14 september 2011 @openminds
    2. 2. Wat• Versiecontrole• Team-tool• Offline
    3. 3. git basis gebruik demo gitimmersion - lab 3 tot lab 10
    4. 4. git: drie statussen• “unstaged” aanpassingen• “staged” aanpassingen• “committed” aanpassingen
    5. 5. Git: het geheim• Git slaat wijzigingen op• Het is geen snapshot van de files• Het is een verzameling/opeenvolging van diffs
    6. 6. diffs, geen snapshots
    7. 7. diffs, geen snapshots
    8. 8. diffs, geen snapshots
    9. 9. diffs, geen snapshotsEen diff tussen 1 en 2
    10. 10. diffs, geen snapshotsEen diff tussen 1 en 2
    11. 11. diffs, geen snapshotsEen diff tussen 1 en 2
    12. 12. diff
    13. 13. git log
    14. 14. sha2ec50a5390f93ee7a52e5ba9edcdaa28e9d5dc4c88a7a694e6e4e91263bab2980b23d9d4aaceef89
    15. 15. Remotes
    16. 16. Remotesgit remote add origin git@gitserver.openminds.be:hello.git Joren Server (origin)
    17. 17. git push origin masterJorenServer
    18. 18. git push origin masterJorenorigin
    19. 19. git push github master git remote add github git@github.com:hello.gitJorengithub
    20. 20. git pull origin masterJorenorigin
    21. 21. git pull origin masterJorenorigin
    22. 22. git cloneBramorigin
    23. 23. git clone git@gitserver.openminds.be:hello.gitBramorigin
    24. 24. Master• hoofd-lijn
    25. 25. HEAD• “vertrekpunt voor de volgende diff ”• uw plaats in de boom• ‘daar waar ge op aan het werken zijt’• een bol
    26. 26. HEAD - master master-branch HEAD
    27. 27. git checkout 567hj87 master-branch HEAD
    28. 28. git checkout master master-branch HEAD
    29. 29. Tagsv1 v1.1
    30. 30. Branches
    31. 31. Branches
    32. 32. Branches
    33. 33. Branches
    34. 34. Branches
    35. 35. Branches feature2 master feature1
    36. 36. Branches demogit immersion lab 24-28
    37. 37. Branches feature2 master feature1
    38. 38. git checkout master HEAD
    39. 39. git checkout feature2 HEAD
    40. 40. git checkout gh6789jHEAD
    41. 41. Merge
    42. 42. Merge
    43. 43. git merge feature1
    44. 44. git merge feature1 merged feature1 into master
    45. 45. git merge feature1 merged feature1 into master
    46. 46. Conflictenmaster-branch
    47. 47. Conflictenmaster-branch
    48. 48. Conflictenmaster-branch feature2-branch
    49. 49. Conflicten
    50. 50. Conflictengit merge feature2
    51. 51. Conflicten
    52. 52. Rebase f g ea b c d
    53. 53. git rebase feature1 f g e a b c d e
    54. 54. git rebase feature1 f g e a b c d e
    55. 55. git rebase feature1 f g e a b c d e f
    56. 56. git rebase feature1 f g e a b c d e f
    57. 57. git rebase feature1 f g e a b c d e f g
    58. 58. git rebase feature1 f g e a b c d e f g
    59. 59. git rebase master f g e a b c d
    60. 60. git rebase master e a b c d
    61. 61. git rebase master e a b c d
    62. 62. git rebase master f e a b c d
    63. 63. git rebase master f e a b c d
    64. 64. git rebase master f g e a b c d
    65. 65. git rebase master f g e a b c d
    66. 66. Conflicten
    67. 67. Remotes
    68. 68. RemotesjorenServerbram HEAD
    69. 69. RemotesjorenServerbram fetch HEAD
    70. 70. Pull• eerst een fetch• dan rebase of merge
    71. 71. Pull - rebase of merge• kies maar• rebase legt het probleem bij jouw changes• merge moet je anderen hun changes aanpassen
    72. 72. Dagelijks gebruik
    73. 73. Normale werkdag• git pull• <werk>• git push
    74. 74. Normaal <werk>• (maak veranderingen - programmeer)• git add• git commit• git rm• git mv ...
    75. 75. Doh!• van stage naar unstage: git reset HEAD filename• van commit naar niet-commit: git revert
    76. 76. Doh!• unstaged wijzigingen weggooien git checkout filename• enkele commits weggooien git reset --hard sha123
    77. 77. Extra’s
    78. 78. cherry-picking
    79. 79. cherry-picking
    80. 80. aliases configureren git immersion lab 11
    81. 81. .gitignore
    82. 82. submodules
    83. 83. bare / github / gitorious
    84. 84. git commit --amend
    85. 85. git bisect
    86. 86. boomstructuur en gc
    87. 87. git hooks
    88. 88. git send-email 5674h84hjks834
    89. 89. git stashgit stash pop
    90. 90. git add -i
    91. 91. git add -p hello.rb
    92. 92. git checkout branch --track remote/branch
    93. 93. git svn
    94. 94. GIT Immersionhttp://www.gitimmersion.com
    95. 95. Pro Githttp://progit.org/book/
    96. 96. Git Cheat Sheethttp://www.cheat-sheets.org/saved-copy/git-cheat-sheet-large.png
    97. 97. Bedankt! www.openminds.be - @openminds Managed hosting servicesPresentatie door @joren en @wonko_be
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×