Upload
arrrrcamp
View
1.004
Download
0
Tags:
Embed Size (px)
Citation preview
GitAn intro to Git Source Control Management
Say what?
Source Control Management
like SVN, CVS,.. but better!
Linus Throvalds (april 2005)
Linux Kernel
Junio Hamano (july 2005)
a stupid person!
Ok, but why?
Offline
Distributed
Branching
Because it’s fucking fast, that’s why!
How git works Offline
world
local
How git works
server
local
local
local
Distributed
How git works Branching
master mergecommit commit
commitcommit
commit
commitfeature
feature
Repository
unstaged
stagedlocal
repositoryremote
repository
git add <files>
git commit git push
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
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
Cool featuresUhm.. Okay...
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
Cool features
fetch changes from another branch
rebase
master
feature
commit 1 commit 2 commit 4
commit 3
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
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
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
GitNub
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
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
Q & A
Useful resources
http://www.kernel.org/pub/software/scm/git/docs/
http://peepcode.com/products/git
https://github.com/
http://github.com/Caged/gitnub/tree/master
http://git.or.cz/gitwiki/GitSvnComparsion
About us
Jeroen Jacobs & Jan De Poorter
@jeroen_j & @defv
Openminds