Introduction to Git and Github

1,253 views
1,197 views

Published on

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

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,253
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • A tool that manages and tracks different versions of software or other content is referred to generically as a version control system (VCS), a source code manager (SCM), or a revision control system (RCS).
  • Linus Torvalds inventedGit to support the development of the Linux kernel, but it has since proven valuable to a wide range of projects. Git development began after many Linux kernel developers chose to give up access to the proprietaryBitKeeper system.[9] (The copyright holder of BitKeeper, Larry McVoy, withdrew free use of the product after he claimed that Andrew Tridgell had reverse-engineered the BitKeeper protocols.)Torvalds wanted a distributed system that he could use like BitKeeper, but none of the available free systems met his needs, particularly his performance needs.
  • Using a distributed model instead of a centralized model also ensured that network latency would not hinder daily development.
  • How do you know that data hasn’t been altered in transition from one developer to the next, or from one repository to the next? How do you know that the data in a Git repository is even what it purports to be?
  • One of the key aspects of a version control system is knowing who changed files, and if at all possible, why. The information stored in that change log is left up to the developer project requirements, management, convention, etc.
  • Using immutable objects has several advantages, including very quick comparison for equality.
  • Git implements atomic transactions by recording complete, discrete repository states that cannot be broken down into individual or smaller state changes.
  • Since merging had been such a pain in previous systems, Linus wanted the new system to support clean, fast, and easy merging.
  • The Idea: When users don't control the program, the program controls the users. The developer controls the program, and through it controls the users. This nonfree or “proprietary” program is therefore an instrument of unjust power.
  • 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

    ×