GIT SCM
Contents• Popularity    – Projects that use/require Git• Functionality    – Distributed repository    – Branching/merging•...
Git vs SVN on Google Trends
GitHub vs SourceForge on     Google Trends
Projects that use Git•   Linux kernel             •   less.js•   Ruby on Rails            •   Elastic search•   jQuery    ...
Git Concepts• Local Repository(just type git init, or right  click…)• Commit• Push/pull• Origin ( the place you took the s...
Distributed vs Centralized
But, you can use Git as a centralized         repository as well                      Team               branches(feature,...
Pros• Git is incredibly faster than SVN cause nearly all operations other  than push and pull work locally• Uses compressi...
Pros continued• Git repos are much smaller than SVN’s (30x smaller in  case of Mozilla project)• Git branches are simpler ...
What people will learn when working              with git• A more modern way to do SCM• They will learn to actually do bra...
Cons• Steep learning curve• Some UI tools do not yet fully support Git• Is harder to configure on client machine ( at  lea...
Git performance
Git Branching?• Tracks the project revision the branch started  from• Records branch merge events  (author, time, date, br...
Possible Branching Model
Resources Required          SVN                    Git• Centralized server   • Centralized server• Client software      • ...
Setup on windows• mysysgit port of git to windows• Public/private certificates on each user  machine for auth• TortoiseGit...
Tools•   TortoiseGit•   Command line utility•   SmartGit•   Eclipse git plugin ( EGit )•   Git source control provider for...
Resources• A successful Git branching model  http://goo.gl/b1EA7• Good Git cheatsheet http://goo.gl/vUSlV• Git website htt...
Upcoming SlideShare
Loading in …5
×

Git

637 views
572 views

Published on

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
637
On SlideShare
0
From Embeds
0
Number of Embeds
173
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Git

  1. 1. GIT SCM
  2. 2. Contents• Popularity – Projects that use/require Git• Functionality – Distributed repository – Branching/merging• Learning• Resources required• Support by 3rd party tools• Summary
  3. 3. Git vs SVN on Google Trends
  4. 4. GitHub vs SourceForge on Google Trends
  5. 5. Projects that use Git• Linux kernel • less.js• Ruby on Rails • Elastic search• jQuery • Eclipse• node.js • Gnome• Twitter bootstrap • KDE• Diaspora SN • Qt• Symfony (requires it!) • Android (!!!)• Facebook OS projects • Stanford/Berkley in their learning courses
  6. 6. Git Concepts• Local Repository(just type git init, or right click…)• Commit• Push/pull• Origin ( the place you took the source from)• Tags ( real tags, no space required, made effortlessly)• Branches (actual branches, not copies of code)
  7. 7. Distributed vs Centralized
  8. 8. But, you can use Git as a centralized repository as well Team branches(feature, release, maintenance) Can have local branches
  9. 9. Pros• Git is incredibly faster than SVN cause nearly all operations other than push and pull work locally• Uses compression when storing/sending code over network. As a result pull/clone/push happen a lot faster.• Preserves the actual author of the code during merge• Allows simultaneous storage of several branches in a single folder• Allows offline commits• Branches know where they came from. Merging them is a piece of cake• Does not pollute your repo by creating stupid .svn folders in each folder
  10. 10. Pros continued• Git repos are much smaller than SVN’s (30x smaller in case of Mozilla project)• Git branches are simpler and less resource heavy than SVNs• Git allows you to execute hooks on some events(commit, push, pull)• Allows commit amend (fix your last commit)• Requires the damned comment thing• To be sure that you won’t loose some code you can just commit it locally instead of copying the files• Ignoring files is easier
  11. 11. What people will learn when working with git• A more modern way to do SCM• They will learn to actually do branching. It won’t be a pain in the ass• They would be forced to type in the damned comment when committing. The thing’s important.• They won’t have to learn it anyway when they finally encounter it in the wild (symfony2)• Anyone who knows git can handle SVN anytime• Contributing
  12. 12. Cons• Steep learning curve• Some UI tools do not yet fully support Git• Is harder to configure on client machine ( at least it was a year ago )• It is impossible to checkout a portion of the project tree (???)• Cumbersome revision numbers
  13. 13. Git performance
  14. 14. Git Branching?• Tracks the project revision the branch started from• Records branch merge events (author, time, date, branch revision info)• Changes made on the branches remain attributed to original authors• Changes made during the merging process are attributed to the merging user• Automatically starts the next merge at the last merge (a branch can be merged twice)
  15. 15. Possible Branching Model
  16. 16. Resources Required SVN Git• Centralized server • Centralized server• Client software • Client software • TortoiseSVN • TortoiseGit • IDE/plugin • IDE/plugin • Command line • Command line git SVN client client • SmartGit if none of the above suits
  17. 17. Setup on windows• mysysgit port of git to windows• Public/private certificates on each user machine for auth• TortoiseGit (so one will have lovely icons on git managed folders)• SmartGit looks like the best UI tool (I haven’t tried eclipse built-in git plugin)
  18. 18. Tools• TortoiseGit• Command line utility• SmartGit• Eclipse git plugin ( EGit )• Git source control provider for Visual Studio
  19. 19. Resources• A successful Git branching model http://goo.gl/b1EA7• Good Git cheatsheet http://goo.gl/vUSlV• Git website http://goo.gl/D3sxy

×