With help from Ariel Rokem, Julia Gustavsen, Fernando Perez, Karthik Ram, Matthew Brett and illustrations from Scott Chacon's pro-git book

Intro to practical version control for scientists

Who here uses a version control system?

What is version control and what does it do for us?

  • Reproducibility : logging of every step, complete project history
  • Peace of mind : a robust backup system of changing files
  • Collaboration : synchronize same files across multiple computers/people

Side benefits from Version Control

  • no overwrites
  • blame is evident
  • nothing is ever los
  • freedom to experiment

Can I only use this for code?

  • Version control works for any file format (code, pdfs, docs, xls, jpg, etc.)
  • ... but works best for text-based files (txt, R, Matlab, any other code)

Introducing git

We will be using git

               

There are many others (subversion, mercurial, bazaar, etc.)

How are we going to learn how to use git?

  • Simple git commands are native in RStudio
  • Tomorrow: More complex tasks (read: powerful but a little more complitacted)
  • Tomorrow: How to collaborate using github