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.

git
a little tale

by
Panagiotis Papadakos papadako@gmail.com
git

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

DVCS vs CVCS

Centralized centralized

Distributed distributed

git ≈ hg

SVN Mercurial (hg) git
Type CVCS DVCS DVCS
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

logcommit(revision)     

git commit [<file>]add commit

git log

Grow branches        cactus

git branch <name> branch

git checkout [<name>] checkout

merge-α

git merge <commit> merging

merge-β

git merge <commit> merging2

conflicts-γ

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!

tips

for you, not for the waiter!init

workflows

Centralized (SVN like) workflows

Decentralized workflows









Sketches by Vincent Driessen
http://nvie.com/posts/a-successful-git-branching-model/

online repos

github Bitbucket gitlab
DVCS git & hg hg & git git
Free public repos Yes
(unlimited members)
Yes
(team < 6)
Yes
Free private repos No Yes
(team < 6 - unlimited for academy)
Yes
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

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.

by
Panagiotis Papadakos
papadako@gmail.com
You can clone and contribute
https://github.com/papadako/git-a-little-tale