terrible ideas in git - corey quinn, futureadvisor - devopsdays tel aviv 2015
TRANSCRIPT
![Page 1: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/1.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/2.jpg)
Everyone will learn something today.
![Page 3: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/3.jpg)
What is Git?
![Page 4: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/4.jpg)
Tracks changes to files and directories.
![Page 5: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/5.jpg)
![Page 6: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/6.jpg)
Git makes you feel stupid.
![Page 7: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/7.jpg)
Written by Linus Torvalds
• Writing git
![Page 8: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/8.jpg)
Written by Linus Torvalds
• Writing git
• Creating Linux
![Page 9: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/9.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/10.jpg)
Git lets you do very, very powerful things.
![Page 11: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/11.jpg)
Git lets you do very, very stupid things.
![Page 12: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/12.jpg)
You can commit large binaries to git.
Don’t try this.
![Page 13: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/13.jpg)
• git-annex • git-lfs
![Page 14: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/14.jpg)
You can commit secrets to git.
Don’t try this.
![Page 15: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/15.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/16.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/17.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/18.jpg)
You can completely screw over your
coworkers.
Don’t try this.
![Page 19: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/19.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/20.jpg)
We’ve shown that git can make us feel stupid.
![Page 21: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/21.jpg)
Help git make you feel smarter.
![Page 22: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/22.jpg)
git config --global help.autocorrect 8
![Page 23: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/23.jpg)
Let the git hate flow through you.
![Page 24: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/24.jpg)
Useful Git related tools
![Page 25: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/25.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/26.jpg)
![Page 27: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/27.jpg)
![Page 28: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/28.jpg)
![Page 29: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/29.jpg)
myrepos (or ‘mr’ as the elderly call it.)
![Page 30: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/30.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/31.jpg)
This builds a ~/.mrconfig
![Page 32: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/32.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/33.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/34.jpg)
Limit operations with sane directory structures
![Page 35: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/35.jpg)
Step 3: Pass it on.
![Page 36: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/36.jpg)
vcsh
![Page 37: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/37.jpg)
![Page 38: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/38.jpg)
$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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/39.jpg)
One last trick.
![Page 40: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/40.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/41.jpg)
Any questions?
![Page 42: Terrible Ideas in Git - Corey Quinn, FutureAdvisor - DevOpsDays Tel Aviv 2015](https://reader031.vdocument.in/reader031/viewer/2022022419/58eec6c91a28ab622e8b4625/html5/thumbnails/42.jpg)
Terrible Ideas in GitPresented by
Corey Quinn of FutureAdvisor [email protected]
@Quinnypig on Twitter