Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to Git and Github

1,382 views

Published on

Introduction to the Git version control system and the Git repository hosting service Github.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Introduction to Git and Github

  1. 1. An IntroductionBy Christopher Pezza – Monfort College of Business 2012
  2. 2.  Version Control refers to management of changes to documents, programs, large web sites and other information stored as computer files. Used in software development, where a team of people may change the same files. Monfort College of Business - BACS 488 2/27/2012 2
  3. 3.  git /ɡɪt/ -- Git is an extremely fast, efficient, distributed version control system ideal for the collaborative development of software. Invented by Linus Torvalds Version Control Tool  Powerful  Flexible  Low-Overhead Monfort College of Business - BACS 488 2/27/2012 3
  4. 4. Monfort College of Business - BACS 488 2/27/2012 4
  5. 5.  Facilitate Distributed Development Scale to handle thousands of developers Perform quickly and efficiently Maintain integrity and trust Enforce accountability Immutability Atomic transactions Support and encourage branched development Complete repositories A clean internal design Be free, as in freedom Monfort College of Business - BACS 488 2/27/2012 5
  6. 6.  Allow parallel as well as independent and simultaneous development in private repositories without the need for constant synchronization with a central repository Allow multiple developers in multiple locations even if some of them are offline temporarily Monfort College of Business - BACS 488 2/27/2012 6
  7. 7.  Thousands of developers contribute to each Linux release Handle a very large number of developers, whether they are working on the same or on different parts of a common project VCS must integrate all work reliably Monfort College of Business - BACS 488 2/27/2012 7
  8. 8.  Needs to support a large volume of update operations that would be made on the Linux Kernel Individual update operations and network transfer operations have to be very fast To save space and thus transfer time, compression and “delta” techniques would be needed Monfort College of Business - BACS 488 2/27/2012 8
  9. 9.  Git uses a common cryptographic hash function, called SHA1, to name and identify objects within its database Monfort College of Business - BACS 488 2/27/2012 9
  10. 10.  Git enforces a change log on every commit that changes a file Git ensures that changes will not happen mysteriously to files under version control because there is an accountability trail for all changes. Monfort College of Business - BACS 488 2/27/2012 10
  11. 11.  Once objects have been created and placed in the database, they cannot be modified Objects can be recreated differently, but the original data cannot be altered. The entire history stored within the version control database is also immutable. Monfort College of Business - BACS 488 2/27/2012 11
  12. 12.  A number of different but related changes are performed either all together or not at all Ensures that the version control database is not left in a partially changed (possibly corrupted) state while an update or commit is happening Monfort College of Business - BACS 488 2/27/2012 12
  13. 13.  VCSs can name different genealogies of development within a single project VCS can also split a single line of development into multiple lines and then unify, or merge, the disparate threads Git calls a line of development a branch and assigns each branch a name Monfort College of Business - BACS 488 2/27/2012 13
  14. 14.  In order to avoid individual developers needing to query a centralized repository server for historical revision information, each repository has a complete copy of all historical revisions of every file. Monfort College of Business - BACS 488 2/27/2012 14
  15. 15.  Git’s object model has simple structures that capture fundamental concepts for raw data, directory structure, recording changes, etc. Coupling the object model with a globally unique identifier technique allowed a very clean data model that could be managed in a distributed development environment. Monfort College of Business - BACS 488 2/27/2012 15
  16. 16.  “Free software” means software that respects users freedom and community. users have the freedom to run, copy, distribute, stud y, change and improve the software Free Software is a matter of liberty, not price: Think “free” as in “free speech,” not as in “free beer”. Example: GNU Licenses Monfort College of Business - BACS 488 2/27/2012 16
  17. 17. Monfort College of Business - BACS 488 2/27/2012 18
  18. 18.  social networking functionality such as feeds, followers and the network graph to display how developers work on their versions of a repository. a pastebin-style site called Gist wikis for individual repositories web pages that can be edited through a Git repository Monfort College of Business - BACS 488 2/27/2012 19
  19. 19. Monfort College of Business - BACS 488 2/27/2012 20
  20. 20. Monfort College of Business - BACS 488 2/27/2012 21
  21. 21. Monfort College of Business - BACS 488 2/27/2012 22
  22. 22.  White, Tom (2011). Version Control with Git: Powerful Tools and Techniques for Collaborative Software Developement. Sebastopol, CA: O’Reilly. Wikipedia – Git (software) What is Free Software? From the GNU Project Monfort College of Business - BACS 488 2/27/2012 23

×