Andee Kaplan
Slides are available at http://bit.ly/git-ladies
Today’s Goal: Getting git-ting like a champ with your fellow
-ladies.

paper_final_final_I_really_mean_it.docxNote: Thanks to http://happygitwithr.com for inspiration and material. There is so much more here, so check it out.
There are many hosting services for remote repositories (GitHub, Bitbucket, GitLab, etc.). We will use GitHub in this class, but the ideas carry over to the other services.
By default, all materials on GitHub are public. This is good because you are getting your work out there and contributing to the open source community!
If you need private repos, checkout GitHub for Education - free private repos for students/postdocs/professors.


Initialize readme (yes), .gitignore (R usually), license (e.g. GPL 3)

hello-world repo

Important: remember to pull before you start working to get the most up to date changes from your collaborators (or your past self) before making local changes!


hello-world repo
Think of commits as a checkpoint in a video game. This is a point in time when you want to save your status so that you can come back to it later if need be.
Commits are like voting. I like to do it early and often.
- Me, right now
Sometimes your local repo gets borked. That’s OK. There are ways that we can work really hard and fix them, but sometimes you just want to stash your files somewhere and re-clone from your centralized repository.

Git’s ability to resolve conflicts is very useful, but conflict resolution costs time and effort, and can introduce errors if conflicts are not resolved correctly.


hello-world repo
If you want a copy of somebody’s repository and you also want to track its evolution then you should clone it. This allows you to pull from the remote, but will not allow you to push (unless you are a collaborator).
This is different from downloading a zip of a repo because you can keep your local version up to date with the remote.


If you think you will want to propose a change to a repository, then you should fork it instead of cloning it.

This creates a copy of the original repo in your GitHub profile. You can now clone your own fork and make changes as usual (pull, commit, push) to your fork.
No, not personal record… pull request!

When you are ready to propose a change to the origin of your fork, place a pull request from your fork to the original repo owned by someone else.

Many of your favorite R packages are developed on GitHub!
Meaning you can contribute!


We have not covered possible installation issue in this workshop If you would like to work through it on your own, here is an excellent guide: http://happygitwithr.com/installation-pain.html
More in-depth tutorials: