class: center, middle, inverse, title-slide # git & GitHub ### Colin Rundel ### 2018-01-19 --- exclude: true --- class: middle count: false # Git Background --- class: center ## Why version control? ![](imgs/phd_comics_vc.gif)<!-- --> --- ## Why version control? * Simple formal system for tracking all changes to a project * Time machine for your projects * Track blame and/or praise * Remove the fear of breaking things * Learning curve is steep, but when you need it you *REALLY* need it <br/> <br/> -- > Your closest collaborator is you six months ago, but you don't reply to emails. > - Paul Wilson, UW-Madison --- ## Why git? * Distributed * Work online or offline * Collaborate with large groups * Popular * Active development * Shiny new tools and ecosystems * Fast * Tracks any type of file * Works best with text * Branching * Smart merges --- class: middle # Live Demo --- ## Some initial configuration We want to let `git` know who we are so there are some simple configuration options we should setup. Let's first tell `git` who we are, and what editor we want to use. ```bash $ git config --global user.name "Colin Rundel" $ git config --global user.email "rundel@gmail.com" $ git config --global push.default simple $ git config --global core.editor nano $ git config --global credential.helper 'cache --timeout=600000' ``` We also want to do this on every machine we will be using - `local`, `saxon`, `OIT VM`, etc. --- # Acknowledgments ## Acknowledgments Above materials are derived in part from the following sources: * Karl Broman - [Wisc's Tools4RR](http://kbroman.org/Tools4RR/) * [Software Carpentry Project](http://software-carpentry.org/)