21
Git An intro to Git Source Control Management

Git

Embed Size (px)

Citation preview

Page 1: Git

GitAn intro to Git Source Control Management

Page 2: Git

Say what?

Source Control Management

like SVN, CVS,.. but better!

Linus Throvalds (april 2005)

Linux Kernel

Junio Hamano (july 2005)

a stupid person!

Page 3: Git

Ok, but why?

Offline

Distributed

Branching

Because it’s fucking fast, that’s why!

Page 4: Git

How git works Offline

world

local

Page 5: Git

How git works

server

local

local

local

Distributed

Page 6: Git

How git works Branching

master mergecommit commit

commitcommit

commit

commitfeature

feature

Page 7: Git

Repository

unstaged

stagedlocal

repositoryremote

repository

git add <files>

git commit git push

Page 8: Git

Our Workflow

git checkout -b cool_feature

do some fun code stuff, drink a mojito

git fetch master

git rebase origin/master

git checkout master

git merge cool_feature

Page 9: Git

Useful commands and files

git init

git add

git commit

git push

git pull

git clone

.gitignore

‣ repository setup

‣ add files to queue for next commit

‣ commit queued files

‣ push commit(s) to remote repository

‣ fetch changes from remote repository

‣ clone repository into a local directory

‣ ignore specific files by adding them here

Page 10: Git

Cool featuresUhm.. Okay...

Page 11: Git

Cool features

do some cool stuff

git stash

fix an irritating bug

git commit -a -m “Farewell, you bug!”

git stash apply

do some more cool stuff

stash

Page 12: Git

Cool features

fetch changes from another branch

rebase

master

feature

commit 1 commit 2 commit 4

commit 3

Page 13: Git

Cool features

fetch changes from another branch

rebase

master

feature

commit 1 commit 2 commit 4

commit 3

1 2 4

1 2 3 4

Page 14: Git

Cool features

Find the code change that introduced a bug

git bisect start

git bisect bad

git log

git bisect good revision

git bisect good/bad

bisect

‣ start bisect session

‣ mark current revision as bad

‣ search a working revision

‣ mark the working one as good

‣ bisect until you find the bug

Page 15: Git

Cool features cherry-pick

Apply a change from another commit into current branch

git log

git checkout branch

git cherry-pick revision

‣ search the right commit

‣ checkout the branch you want

‣ apply commit into branch

Page 16: Git

GitNub

Page 17: Git

Git vs SVN

Git SVN

Distributed Single Repository

Branches partial checkout

Performance Access Control

Repository size Shorter revision numbers

Powerful, little more complicated

more GUI tools

Page 18: Git

git-svn

using git local if you have a remote svn repository

use git on your local machine

staging

seperate commits

branches

push your commits to your svn repository

Page 19: Git

Q & A