Slide 1

Slide 1 text

Git, Unicorns and Rainbows Geoffrey Bachelet — KnpLabs Wednesday, September 21, 11

Slide 2

Slide 2 text

Not your average git talk Wednesday, September 21, 11

Slide 3

Slide 3 text

Ready? Wednesday, September 21, 11

Slide 4

Slide 4 text

Forgot something in your commit? Wednesday, September 21, 11

Slide 5

Slide 5 text

git --amend Wednesday, September 21, 11

Slide 6

Slide 6 text

git --amend • Add files to a commit • Remove files from a commit • Change a commit’s message Wednesday, September 21, 11

Slide 7

Slide 7 text

Partially commit a file? Wednesday, September 21, 11

Slide 8

Slide 8 text

git add -p Wednesday, September 21, 11

Slide 9

Slide 9 text

git add -p • Stage only the chunks of diff you want • Intelligent chunking (chunk more!) • Manual chunk edit Wednesday, September 21, 11

Slide 10

Slide 10 text

Tweak your commit history before pushing? Wednesday, September 21, 11

Slide 11

Slide 11 text

git rebase -i Wednesday, September 21, 11

Slide 12

Slide 12 text

git rebase -i • Change commits order • Edit commits (just like commit --amend) • Squash commits together Wednesday, September 21, 11

Slide 13

Slide 13 text

Internet just went down? Wednesday, September 21, 11

Slide 14

Slide 14 text

Work locally! Wednesday, September 21, 11

Slide 15

Slide 15 text

Work locally! • Commit • Create / merge branches • What you can’t do: push and fetch Wednesday, September 21, 11

Slide 16

Slide 16 text

Want to create a shitload of branches? Wednesday, September 21, 11

Slide 17

Slide 17 text

Branches are cheap as fuck. Wednesday, September 21, 11

Slide 18

Slide 18 text

Branches are cheap • A branch is just a ref to a commit • That is, a 40 bytes file • Containing a sha1 Wednesday, September 21, 11

Slide 19

Slide 19 text

Woops, I should have branched that? Wednesday, September 21, 11

Slide 20

Slide 20 text

It’s never too late. Wednesday, September 21, 11

Slide 21

Slide 21 text

It’s never too late • Mark your current commit • Switch back to previous branch • Reset to branch start-point Wednesday, September 21, 11

Slide 22

Slide 22 text

The build is broken? Wednesday, September 21, 11

Slide 23

Slide 23 text

git bisect Wednesday, September 21, 11

Slide 24

Slide 24 text

git bisect • Tell git a commit for which the build works • And a commit for which it’s broken • It will find the commit that breaks! Wednesday, September 21, 11

Slide 25

Slide 25 text

You commited your database password? Wednesday, September 21, 11

Slide 26

Slide 26 text

git filter-branch Wednesday, September 21, 11

Slide 27

Slide 27 text

git filter-branch • Crawls your history • Runs commands on it • And voila! Wednesday, September 21, 11