Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git - A distributed version control system

Avatar for Hrishi Hrishi
September 15, 2011

Git - A distributed version control system

Presentation about git - a distributed version control system. Presented as part of B-tech Seminar presentation.

Avatar for Hrishi

Hrishi

September 15, 2011
Tweet

More Decks by Hrishi

Other Decks in Technology

Transcript

  1. Introduction GIT Advantages and Improvements Conclusion Git-A Distributed Version Control

    System Hrishikesh K B S7 CSE College of Engineering Munnar 15 September 2011 Creative Commons Attribution Share Alike 2.5 India License http://creativecommons.org/licenses/by-sa/2.5/in Created with L ATEX Hrishikesh K B Git-A Distributed Version Control System
  2. Introduction GIT Advantages and Improvements Conclusion Contents 1 Introduction What

    is Version Control System? Technical Terms Centralized Version Control System Distributed Version Control System 2 GIT Repository structure Blob Object Tree Object Commit Object Tag Object 3 Advantages and Improvements Advantages Improvements 4 Conclusion References Hrishikesh K B Git-A Distributed Version Control System
  3. Introduction GIT Advantages and Improvements Conclusion What is Version Control

    System? Technical Terms Centralized Version Control System Distributed Version Control System What is Version Control System? An Aspect of software configuration management. Keeps multiple (older and newer) versions of everything (not just source code) Requests comments regarding every change. Enable groups of people to work together. Hrishikesh K B Git-A Distributed Version Control System
  4. Introduction GIT Advantages and Improvements Conclusion What is Version Control

    System? Technical Terms Centralized Version Control System Distributed Version Control System Technical Terms Change Repository Commit Trunk Branch Tags Merge Hrishikesh K B Git-A Distributed Version Control System
  5. Introduction GIT Advantages and Improvements Conclusion What is Version Control

    System? Technical Terms Centralized Version Control System Distributed Version Control System Centralized Version Control System Traditional version control system Server with database Clients have a working version Examples: CVS,Subversion,Visual Source Safe etc. Multi-developer conflicts Client/server communication Requires ’Committer’ Status Hrishikesh K B Git-A Distributed Version Control System
  6. Introduction GIT Advantages and Improvements Conclusion What is Version Control

    System? Technical Terms Centralized Version Control System Distributed Version Control System Distributed Version Control System Authoritative server by convention only. Every working checkout is a repository. Get version control even when detached. Examples: Git , Mercurial , Bazaar etc. Hrishikesh K B Git-A Distributed Version Control System
  7. Introduction GIT Advantages and Improvements Conclusion Repository structure GIT Initially

    designed and developed by Linus Torvalds. Very fast operations compared to other VCS. Managing branches is easy and switching between them locally is fast Used by many major open source projects such as Android, Eclipse and Ruby on Rails. Hrishikesh K B Git-A Distributed Version Control System
  8. Introduction GIT Advantages and Improvements Conclusion Repository structure Repository structure

    Snapshots The Git Object Model Blob Tree Commit Tag Hrishikesh K B Git-A Distributed Version Control System
  9. Introduction GIT Advantages and Improvements Conclusion Repository structure Blob Object

    Used to store file data. It doesn’t refer to anything else or have attributes of any kind Files with same content will share the same blob object. Renaming a file does not change the object that file is associated with. Hrishikesh K B Git-A Distributed Version Control System
  10. Introduction GIT Advantages and Improvements Conclusion Repository structure Tree Object

    Represents the contents of a directory or subdirectory. It is a simple object that has a bunch of pointers to blobs and other trees A tree object contains a list of entries, each with a mode, object type, SHA1 name, and name. Two trees have the same SHA1 name if and only if their contents are identical. Hrishikesh K B Git-A Distributed Version Control System
  11. Introduction GIT Advantages and Improvements Conclusion Repository structure Commit Object

    The ”commit” object links a physical state of a tree with a description of how we got there and why. A commit is defined by a tree , parent(s),an author,a commiter , and a comment Changes are calculated by comparing the contents of the tree referred to by this commit with the trees associated with its parents. Hrishikesh K B Git-A Distributed Version Control System
  12. Introduction GIT Advantages and Improvements Conclusion Repository structure Tag Object

    A tag object contains an object name (called simply ’object’), object type, tag name, the name of the person (”tagger”) who created the tag, and a message, which may contain a signature Hrishikesh K B Git-A Distributed Version Control System
  13. Introduction GIT Advantages and Improvements Conclusion Repository structure The Object

    Model Hrishikesh K B Git-A Distributed Version Control System
  14. Introduction GIT Advantages and Improvements Conclusion Advantages Improvements Advantages Allows

    users to work productively even when not connected to a network Makes most operations much faster since no network is involved Allows private work, so users can use their revision control system even for early drafts they do not want to publish Avoids relying on a single physical machine as a single point of failure. Hrishikesh K B Git-A Distributed Version Control System
  15. Introduction GIT Advantages and Improvements Conclusion Advantages Improvements Improvements Migrate

    to a better hash function before further research destroys SHA1. Remove Commit Size Limit Increase Repository Size. Hrishikesh K B Git-A Distributed Version Control System
  16. Introduction GIT Advantages and Improvements Conclusion References Conclusion VCS Keeps

    multiple versions of everything Centralized and Distributed Systems Git is a fast Distributed Version Control system It has many advantages over other systems. Corporate software developers should consider git over other VCSs Hrishikesh K B Git-A Distributed Version Control System
  17. Introduction GIT Advantages and Improvements Conclusion References References Distributed Version

    Control Systems, by Dipl. Medieninformatiker (BA) Daniel Kuhn http://git-scm.com/ http://eagain.net/articles/ git-for-computer-scientists/ http: //hoth.entp.com/output/git_for_designers.html http://www-cs-students.stanford.edu/~blynn/ gitmagic/book.pdf http://en.wikipedia.org/wiki/Git_software http://en.wikipedia.org/wiki/Distributed_ revision_control_system http://stackoverflow.com/questions/35837/ what-is-the-difference-between-mercurial-and-git Hrishikesh K B Git-A Distributed Version Control System