42
Terrible Ideas in Git Presented by Corey Quinn of FutureAdvisor [email protected] @Quinnypig on Twitter

Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Embed Size (px)

Citation preview

Page 1: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Terrible Ideas in GitPresented by

Corey Quinn of FutureAdvisor [email protected]

@Quinnypig on Twitter

Page 2: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Everyone will learn something today.

Page 3: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

What is Git?

Page 4: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Tracks changes to files and directories.

Page 5: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015
Page 6: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Git makes you feel stupid.

Page 7: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Written by Linus Torvalds

• Writing git

Page 8: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Written by Linus Torvalds

• Writing git

• Creating Linux

Page 9: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Written by Linus Torvalds

• Writing git

• Creating Linux

• Calling people morons on the internet

Page 10: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Git lets you do very, very powerful things.

Page 11: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Git lets you do very, very stupid things.

Page 12: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

You can commit large binaries to git.

Don’t try this.

Page 13: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

• git-annex • git-lfs

Page 14: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

You can commit secrets to git.

Don’t try this.

Page 15: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

You can… I don’t even know what this is.

Don’t try this.

Page 16: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

You can set up custom shell aliases around git.

Don’t try this.

Page 17: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

alias such=git alias very=git alias wow='git status'

Don’t try this.

Page 18: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

You can completely screw over your

coworkers.

Don’t try this.

Page 19: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

alias yolo= 'git commit -am "DEAL WITH IT" && git push -f origin master'

Don’t try this.

Page 20: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

We’ve shown that git can make us feel stupid.

Page 21: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Help git make you feel smarter.

Page 22: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

git config --global help.autocorrect 8

Page 23: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Let the git hate flow through you.

Page 24: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Useful Git related tools

Page 25: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Does anyone have more than one git repository that they care about?

Page 26: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015
Page 27: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015
Page 28: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015
Page 29: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

myrepos (or ‘mr’ as the elderly call it.)

Page 30: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Step 1: Run “mr register” inside of

each repository you care about

Page 31: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

This builds a ~/.mrconfig

Page 32: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Step 2: Run “mr update” and watch as it updates all of your repositories in

series.

Page 33: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Not just git; mr also supports svn, mercurial, bzr, darcs,

fossil, cvs, veracity, and more.

Page 34: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Limit operations with sane directory structures

Page 35: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Step 3: Pass it on.

Page 36: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

vcsh

Page 37: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015
Page 38: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

$HOME |-- $XDG_CONFIG_HOME (defaults to $HOME/.config) | |-- mr | | |-- available.d | | | |-- zsh.vcsh | | | |-- gitconfigs.vcsh | | | |-- lftp.vcsh | | | |-- offlineimap.vcsh | | | |-- s3cmd.vcsh | | | |-- tmux.vcsh | | | |-- vim.vcsh | | | |-- vimperator.vcsh | | | `-- snippets.git | | `-- config.d | | |-- zsh.vcsh -> ../available.d/zsh.vcsh | | |-- gitconfigs.vcsh -> ../available.d/gitconfigs.vcsh | | |-- tmux.vcsh -> ../available.d/tmux.vcsh | | `-- vim.vcsh -> ../available.d/vim.vcsh | `-- vcsh | |-- config | `-- repo.d | |-- zsh.git -----------+ | |-- gitconfigs.git | | |-- tmux.git | | `-- vim.git | |-- [...] | |-- .zshrc <----------------------+

Page 39: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

One last trick.

Page 40: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

myrepos: https://myrepos.branchable.com vcsh: https://github.com/RichiH/vcsh thefuck: https://github.com/nvbn/thefuck

Page 41: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Any questions?

Page 42: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015

Terrible Ideas in GitPresented by

Corey Quinn of FutureAdvisor [email protected]

@Quinnypig on Twitter