Version Control
I am Vaidik
A B. Tech. student at Jaypee Institute of
 Information Technology, NOIDA.
A web developer.
A Drupal Contributor.
A Mozilla Student Rep and Contributor.
Twitter: @vaidikkapoor
Github: vaidikkp
What we will talk about?
Version Controlling – The Concept
Distributed VCS vs Centralized VCS
Introduction to Git
Hands-on Git!
More Resources
Version Controlling
What is Version Control?
  A system that is used to record changes to a file or a
    set of files.
Why we need it?
  Keep track of changes that anyone makes to a set of
   files.
  Revert to a particular version of your file (state) if you
   need to so you don't have to remember everything
   you do.
  Compare different states of your file.
Centralized vs. Distributed
Local VCS:
  The project is on your local machine.
  Commits are stored in a local database that keeps
   track of changes.
  Disadvantages:
    No way to collaborate
    Single point-of-failure: if your local machine crashes, all
      your work is lost.
Centralized vs. Distributed
Centralized
  The VCS database is on a server accessible to
    everyone.
  Read/update the latest snapshot of the files from the
   central server.
  Advantages:
     Very easy to collaborate.
     Everyone stays updated with the changes everyone makes.
     A lot more control over files (like who can read/write which
       files, etc.).
  Disadvantages:
Centralized vs. Distributed
Distributed
  The VCS database is on a server accessible to
    everyone.
  Instead of reading/updating the snapshot of files, get
    the whole history of changes.
  Advantages:
     Everybody has everything that is there on the server.
     No single point-of-failure, everybody is happy! :)
  Examples:
     Git, Mercurial, Bazaar, Darcs
Git
A DVCS.
Originally developed by Linus Torvalds for
 version controlling of the Kernel.
Originally a command-line utility, but a wide
 variety of GUI clients exist.
Works on Linux, Mac and Windows.
Used a lot, wide community.
Hands-on Time!
Git Basic Commands
  Init
  Add/Commit
  Log
  Revert
  Branch
  Merge
  Merge Conflict
A common workflow
More Resources
More Tutorials:
  Git SCM Book: http://git-scm.com/book
  Pro Git: http://progit.org/book/
  Git Immersion: http://gitimmersion.com/
  Screencast from Github:
   http://learn.github.com/p/intro.html
  Presentation by Shakti Kannan: http://goo.gl/6BTTv
Thank You!
This presentation can be found online at
  http://www.slideshare.net/... (the chicken and egg
  problem :P)

Me:                                 OSDC:
Website                             Website
  http://vaidikkapoor.info            http://opensource.jiitu.org
Twitter                             Wiki
  http://twitter.com/vaidikkapoor     http://opensource.jiitu.org/wiki
Github                              Twitter
   http://github.com/vaidikkp         http://twitter.com/jiitosdc
                                    Facebook Group
                                      http://on.fb.me/jiitosdc

Version Controlling

  • 2.
  • 3.
    I am Vaidik AB. Tech. student at Jaypee Institute of Information Technology, NOIDA. A web developer. A Drupal Contributor. A Mozilla Student Rep and Contributor. Twitter: @vaidikkapoor Github: vaidikkp
  • 4.
    What we willtalk about? Version Controlling – The Concept Distributed VCS vs Centralized VCS Introduction to Git Hands-on Git! More Resources
  • 5.
    Version Controlling What isVersion Control? A system that is used to record changes to a file or a set of files. Why we need it? Keep track of changes that anyone makes to a set of files. Revert to a particular version of your file (state) if you need to so you don't have to remember everything you do. Compare different states of your file.
  • 6.
    Centralized vs. Distributed LocalVCS: The project is on your local machine. Commits are stored in a local database that keeps track of changes. Disadvantages: No way to collaborate Single point-of-failure: if your local machine crashes, all your work is lost.
  • 7.
    Centralized vs. Distributed Centralized The VCS database is on a server accessible to everyone. Read/update the latest snapshot of the files from the central server. Advantages: Very easy to collaborate. Everyone stays updated with the changes everyone makes. A lot more control over files (like who can read/write which files, etc.). Disadvantages:
  • 8.
    Centralized vs. Distributed Distributed The VCS database is on a server accessible to everyone. Instead of reading/updating the snapshot of files, get the whole history of changes. Advantages: Everybody has everything that is there on the server. No single point-of-failure, everybody is happy! :) Examples: Git, Mercurial, Bazaar, Darcs
  • 9.
    Git A DVCS. Originally developedby Linus Torvalds for version controlling of the Kernel. Originally a command-line utility, but a wide variety of GUI clients exist. Works on Linux, Mac and Windows. Used a lot, wide community.
  • 10.
    Hands-on Time! Git BasicCommands Init Add/Commit Log Revert Branch Merge Merge Conflict A common workflow
  • 11.
    More Resources More Tutorials: Git SCM Book: http://git-scm.com/book Pro Git: http://progit.org/book/ Git Immersion: http://gitimmersion.com/ Screencast from Github: http://learn.github.com/p/intro.html Presentation by Shakti Kannan: http://goo.gl/6BTTv
  • 12.
    Thank You! This presentationcan be found online at http://www.slideshare.net/... (the chicken and egg problem :P) Me: OSDC: Website Website http://vaidikkapoor.info http://opensource.jiitu.org Twitter Wiki http://twitter.com/vaidikkapoor http://opensource.jiitu.org/wiki Github Twitter http://github.com/vaidikkp http://twitter.com/jiitosdc Facebook Group http://on.fb.me/jiitosdc