際際滷

際際滷Share a Scribd company logo
Why Git?	
      A quick
      trip down
      the Git
      rabbit
      hole.




   Mark Guzman
   mg@hasno.info
   @segy
   http://hasno.info
Thursday, March 4, 2010
What is Git	

                   Distributed Version Control

                   Fast (small C core)

                   Popular (Github)

                   Stupid Content Tracker




Thursday, March 4, 2010
京艶稼艶鍖t壊
                   Easier Merging

                   Cheap fast branching

                   Speed

                   Checkout size

                   Maintains an easily usable history

                   Redundancy by default


Thursday, March 4, 2010
Why Merging
                  Tracking Matters
                   History Matters

                          Why did Bob change 10 鍖les in his branch 3
                          weeks back?

                          Why did you change some of the same 鍖les in
                          yours?

                          How will you know a year down the road?



Thursday, March 4, 2010
File Based Change
                  Tracking




Thursday, March 4, 2010
Changeset Tracking



                          Git treats all your changes as a single ChangeSet.
                          It uses a SHA-1 hash of the changes to identify them
                           Eg: commit 7ef55e41f1cf529e47723d869233492077c94896



Thursday, March 4, 2010
Stupid Content Tracking




                   Simple object relationships.

                          Tree (folder) -> Blob (鍖le data)

Thursday, March 4, 2010
Commits -> Trees




Thursday, March 4, 2010
Refs (Branches)




                   Refs -> Commits -> Trees -> Blobs


Thursday, March 4, 2010
Staging




                   The Index (Staging Area) allows you to organize

                          Does the comment make sense for the commit?
Thursday, March 4, 2010
Centralized Work鍖ow




                          Central Repository is treated as a hub for
                          changes. It would drive automated builds.

Thursday, March 4, 2010
Distributed Work鍖ow




                          You can pull from any compatible* source


Thursday, March 4, 2010
Branch & Merge
                  tracking
                             Branch
                          with changes




                          Merged Tree




Thursday, March 4, 2010
Rebase?




                   Take my commits and replay them after the HEAD
                   of another branch.


Thursday, March 4, 2010
Windows Tools
                   TortoiseGit

                   Git Extensions

                   msysgit

                   Git Cheetah

                   git-gui

                   gitk


Thursday, March 4, 2010
Live Demo Time.




Thursday, March 4, 2010
Notes from the
                  Trenches
                   Learning curve

                   Server setup easier on linux

                   Submodules != svn externals

                   Watch our for detached HEAD

                   Be EXTREMELY careful with a force push.



Thursday, March 4, 2010
Force things at your
                  own risk.




Thursday, March 4, 2010
Why I choose Git.

                   Merging with history

                   Quick branch switching

                   Stashing and Staging

                   Best SCM Ive used so far.




Thursday, March 4, 2010
Questions
                   References
                          http://git-scm.com

                          http://github.com

                          http://code.google.com/p/tortoisegit/

                          http://code.google.com/p/gitextensions/

                          http://marklodato.github.com/visual-git-guide/

                          http://progit.org/book/

                          http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-
                          windows/




Thursday, March 4, 2010

More Related Content

Why Git

  • 1. Why Git? A quick trip down the Git rabbit hole. Mark Guzman mg@hasno.info @segy http://hasno.info Thursday, March 4, 2010
  • 2. What is Git Distributed Version Control Fast (small C core) Popular (Github) Stupid Content Tracker Thursday, March 4, 2010
  • 3. 京艶稼艶鍖t壊 Easier Merging Cheap fast branching Speed Checkout size Maintains an easily usable history Redundancy by default Thursday, March 4, 2010
  • 4. Why Merging Tracking Matters History Matters Why did Bob change 10 鍖les in his branch 3 weeks back? Why did you change some of the same 鍖les in yours? How will you know a year down the road? Thursday, March 4, 2010
  • 5. File Based Change Tracking Thursday, March 4, 2010
  • 6. Changeset Tracking Git treats all your changes as a single ChangeSet. It uses a SHA-1 hash of the changes to identify them Eg: commit 7ef55e41f1cf529e47723d869233492077c94896 Thursday, March 4, 2010
  • 7. Stupid Content Tracking Simple object relationships. Tree (folder) -> Blob (鍖le data) Thursday, March 4, 2010
  • 9. Refs (Branches) Refs -> Commits -> Trees -> Blobs Thursday, March 4, 2010
  • 10. Staging The Index (Staging Area) allows you to organize Does the comment make sense for the commit? Thursday, March 4, 2010
  • 11. Centralized Work鍖ow Central Repository is treated as a hub for changes. It would drive automated builds. Thursday, March 4, 2010
  • 12. Distributed Work鍖ow You can pull from any compatible* source Thursday, March 4, 2010
  • 13. Branch & Merge tracking Branch with changes Merged Tree Thursday, March 4, 2010
  • 14. Rebase? Take my commits and replay them after the HEAD of another branch. Thursday, March 4, 2010
  • 15. Windows Tools TortoiseGit Git Extensions msysgit Git Cheetah git-gui gitk Thursday, March 4, 2010
  • 16. Live Demo Time. Thursday, March 4, 2010
  • 17. Notes from the Trenches Learning curve Server setup easier on linux Submodules != svn externals Watch our for detached HEAD Be EXTREMELY careful with a force push. Thursday, March 4, 2010
  • 18. Force things at your own risk. Thursday, March 4, 2010
  • 19. Why I choose Git. Merging with history Quick branch switching Stashing and Staging Best SCM Ive used so far. Thursday, March 4, 2010
  • 20. Questions References http://git-scm.com http://github.com http://code.google.com/p/tortoisegit/ http://code.google.com/p/gitextensions/ http://marklodato.github.com/visual-git-guide/ http://progit.org/book/ http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on- windows/ Thursday, March 4, 2010