Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek"...

37
Git, Jenkins & Chuck Starcube Brno 25.9. 2012 Juraj Michálek http://georgik.sinusgear.com http://twitter.com/sinusgear

Transcript of Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek"...

Page 1: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git, Jenkins & Chuck

StarcubeBrno

25.9. 2012

Juraj Michálekhttp://georgik.sinusgear.comhttp://twitter.com/sinusgear

Page 2: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Content

Git – Basics

Git – Advanced

Jenkins

Chuck?

Page 3: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - Basics

Initial release: 7. 4. 2005

Linus Torvalds

Page 4: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Heroku Toolbelt

All important tools in one package.

https://toolbelt.heroku.com/

Page 5: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

TortoiseGit

http://code.google.com/p/tortoisegit/

Page 6: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Github

Social codinghttp://github.com

Page 7: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Codeplex

Project Hosting for Open Source Software

http://codeplex.com

Page 8: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

PF 2012

https://pf2012.codeplex.com/

Git Clone

Page 9: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git Clone

Page 10: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Command line

git clone https://git01.codeplex.com/pf2012

Page 11: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Fork

Fork remote repository

Page 12: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - Advanced

Concepts

Page 13: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git

Remote repository

Local repository

Stage

Working area

Page 14: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - clone

Remote repository

Local repository

Stage

Working area

clone

Page 15: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - add

Remote repository

Local repository

Stage

Working area

add

Page 16: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - commit

Remote repository

Local repository

Stage

Working area

commit

Page 17: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - push

Remote repository

Local repository

Stage

Working area

push

Page 18: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git – operations

Remote repository

Local repository

Stage

Working area

add

commit

pushclone

Page 19: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Configure

git config --global user.name "Juraj Michalek"

git config --global user.email "[email protected]"

Page 20: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Initialize

git init

Page 21: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Where is git?

.git

Page 22: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Status?

git status

Page 23: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - add

Remote repository

Local repository

Stage

Working area

add

Page 24: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Add

git add .Everything in working dir.

git add filename

Page 25: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Status?

git status

Page 26: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - commit

Remote repository

Local repository

Stage

Working area

commit

Page 27: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Commit

git commit -m „Initial commit“

Page 28: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Commit message

Short line summary – 50 characters.

Longer message: blank line and message

Keep it up to 72 characters.

Page 29: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Commit message

Ticket ID/Bug system reference

Good and descriptive

Page 30: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Logs

git log

git log branch1..branch2

Page 31: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Branches

git branch

git branch newbranch

git checkout newbranch

Page 32: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Diff

git diff

git diff --color-words

Page 33: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Revert single file

git checkout – filename

Page 34: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Git - push

Remote repository

Local repository

Stage

Working area

push

Page 35: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Connecting to remote

Cloned repos are connected.

git remote add origin url

git push -u origin master

Page 36: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Jenkins

http://jenkins-ci.org/

Page 37: Git, Jenkins & Chuck - georgik.rocks · Configure git config --global user.name "Juraj Michalek" git config --global user.email "juraj.michalek@gmail.com"

Warning

Use path without spaces or special characters!

This is wrong: C:\Program Files (x86)\Jenkins\

Use: C:\Jenkins\