introduction to git and github

23
By Christopher Pezza – Monfort College of Business 2012 An Introduction

Post on 21-Oct-2014

1.451 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Introduction to Git and Github

By Christopher Pezza – Monfort College of Business 2012

An Introduction

Page 2: Introduction to Git and Github

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

Page 3: Introduction to Git and Github

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

Page 4: Introduction to Git and Github

4Monfort College of Business - BACS 488

2/27/2012

VCS Requirements that drove the

development of Git

Page 5: Introduction to Git and Github

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

Page 6: Introduction to Git and Github

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

Page 7: Introduction to Git and Github

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

Page 8: Introduction to Git and Github

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

Page 9: Introduction to Git and Github

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

Page 10: Introduction to Git and Github

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

Page 11: Introduction to Git and Github

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

Page 12: Introduction to Git and Github

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

Page 13: Introduction to Git and Github

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

Page 14: Introduction to Git and Github

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

Page 15: Introduction to Git and Github

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

Page 16: Introduction to Git and Github

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

Page 17: Introduction to Git and Github
Page 18: Introduction to Git and Github

18Monfort College of Business - BACS 488

2/27/2012

Page 19: Introduction to Git and Github

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

Page 20: Introduction to Git and Github

20Monfort College of Business - BACS 488

2/27/2012

Page 21: Introduction to Git and Github

21Monfort College of Business - BACS 488

2/27/2012

Page 22: Introduction to Git and Github

22Monfort College of Business - BACS 488

DEMO TIME

Thanks for Watching!

2/27/2012

Page 23: Introduction to Git and Github

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