introduction to git and github
Post on 21-Oct-2014
1.451 views
DESCRIPTION
Introduction to the Git version control system and the Git repository hosting service Github.TRANSCRIPT
By Christopher Pezza – Monfort College of Business 2012
An Introduction
2Monfort College of Business - BACS 488
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.
Version Control
2/27/2012
3Monfort College of Business - BACS 488
git /'ɡɪt/ -- Git is an extremely fast, efficient, distributed version control system ideal for the collaborative development of software.
Invented by Linus TorvaldsVersion Control Tool
Powerful Flexible Low-Overhead
What is Git?
2/27/2012
4Monfort College of Business - BACS 488
2/27/2012
VCS Requirements that drove the
development of Git
5Monfort College of Business - BACS 488
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
What features or characteristics were missing from pre-Git VCS systems?
2/27/2012
6Monfort College of Business - BACS 488
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
Facilitate Distributed
Development
2/27/2012
7Monfort College of Business - BACS 488
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
Scale to Handle Thousands of Developers
2/27/2012
8Monfort College of Business - BACS 488
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
Perform Quickly and Efficiently
2/27/2012
9Monfort College of Business - BACS 488
Git uses a common cryptographic hash function, called SHA1, to name and identify objects within its database
Maintain Integrity and Trust
2/27/2012
10Monfort College of Business - BACS 488
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.
Enforce Accountability
2/27/2012
11Monfort College of Business - BACS 488
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.
Immutability
2/27/2012
12Monfort College of Business - BACS 488
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
Atomic Transactions
2/27/2012
13Monfort College of Business - BACS 488
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
Support and encourage branched
development
2/27/2012
14Monfort College of Business - BACS 488
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.
Complete Repositories
2/27/2012
15Monfort College of Business - BACS 488
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.
A Clean Internal Design
2/27/2012
16Monfort College of Business - BACS 488
“Free software” means software that respects users' freedom and community.
users have the freedom to run, copy, distribute, study, 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
Be Free, as in Freedom
2/27/2012
18Monfort College of Business - BACS 488
2/27/2012
19Monfort College of Business - BACS 488
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
GithubFeatures
2/27/2012
20Monfort College of Business - BACS 488
2/27/2012
21Monfort College of Business - BACS 488
2/27/2012
22Monfort College of Business - BACS 488
DEMO TIME
Thanks for Watching!
2/27/2012
23Monfort College of Business - BACS 488
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
Sources
2/27/2012