This presentation was build for latest Chrome or Safari browser.

You are viewing simplified view, but most of the CSS 3D will not work for you, sorry.

a little tale

Panagiotis Papadakos

intro to VCS

Version Control Systems (VCS)

history       pillar

Before-VCS epoch

Centralized VCS (CVCS) epoch

Distributed VCS (DVCS) epoch

Linus and the war of (D)VCS Linus Torvalds


Centralized centralized

Distributed distributed

git ≈ hg

SVN Mercurial (hg) git
Storage method Changeset/Snapshot Changeset Snapshot
Learning Curve Easy Moderate Steep
Developed in C Python C/perl/shell scripts
Speed Slow Fast Very Fast
Branching Easy Free Free
Merging Difficult Pretty easy Piece of cake
Data Integrity Primitive SHA-1 SHA-1
Space Requirements Big Small (efficient for small projects) Small (efficient for big projects)
History rewriting No Yes Yes
VCS Collaboration No Yes Yes
Integration with IDEs Yes Yes Yes

hi, I am git

Who are you?

your first repo

git init init

git status

3 trees +  

three trees add

create our first file add

git add [<file>]add


git commit [<file>]add commit

git log

Grow branches        cactus

git branch <name> branch

git checkout [<name>] checkout


git merge <commit> merging


git merge <commit> merging2


Merging can lead to conflictsmerging2

On-line repos!

git remote remote

     clone repos, !sheep  

git clone [<repoName>]clone

taz, fetch it!

git fetch [<remote>]fetch

Now, pull!       canoe

git pull [<remote>] pull

Push, push!       baby

git push [<remote>][<branch>]push

dangerrr!!!       danger

git rebase (harder collaboration)

git reset [<name>](lose commits)

git rm (lose code)dangerosity

git reset --hard [<name>]
(lose code + commits)

et al.  

git tag

git stash

git bisect

git revert

git mv, show, cherry pick, blame, etc.

There is no file lock command, since there is no server!


for you, not for the waiter!init


Centralized (SVN like) workflows

Decentralized workflows

Sketches by Vincent Driessen

online repos

github Bitbucket gitlab
DVCS git & hg hg & git git
Free public repos Yes
(unlimited members)
(team < 6)
Free private repos No Yes
(team < 6 - unlimited for academy)
Size of repos Unlimited 2Gb 10Gb
Deployed Cloud Cloud Cloud or own server (paid)
Issues Yes Yes Yes
Social Aspect Strong (OS) Not strong New kid on the block
Pull requests Yes Yes Yes
Wikis Yes Yes Yes
Project Deployment No No Yes
Code Statistics Best Moderate ?

Do you dance?  

Yes, with code!

hippalus, a Preference-enriched Faceted Search (PFS) system

Video shows the history of the code


Epicurus advice:
Quit procrastinating & learn git

Γεγόναμεν ἅπαξ, δὶς δὲ οὐκ ἔστι γενέσθαι
δεῖ δὲ τὸν αἰῶνα μηκέτι εἶναι
σὺ δὲ οὐκ ὢν τῆς αὔριον κύριος ἀναβάλλῃ τὸ χαῖρο
ὁ δὲ βίος μελλησμῷ παραπόλλυται καὶ εἷς ἕκαστος ἡμῶν ἀσχολούμενος ἀποθνῄσκει.

We have been born once and cannot be born a second time; for all eternity we shall no longer exist. But you, although you are not in control of tomorrow, are postponing your happiness. Life is wasted by delaying, and each one of us dies without enjoying leisure.

Panagiotis Papadakos
You can clone and contribute