Step by step guide on using GitHub and RStudio for collaborative analysis.
This guide introduces the concept of version control using only GUI tools, namely RStudio and the GitHub web interface. If you’d prefer to learn command line syntax, there are many other resources available on the web from GitHub, Atlassian and others.
hello
, select “Public” and tick the box “Initialize this repository with a README”.Click on the file README.md
and click the ✏️ pencil icon (“Edit this file”) in the upper-right.
If, in the previous step, you forgot to initialise with a README, you can do it now by clicking on the link “We recommend every repository include a README”.
A basic text editor will appear, containing the contents of your README.md
file, which at the moment will be just:
# hello
Modify the file to say something like
# My first repository
Welcome to my GitHub repo! :smile:
`code`. Here I will *commit*, _pull_ and *push* plaintext documents and
This is a plain Markdown document. You can write in the same basic syntax as for Markdown (.md
) documents in RStudio (except mathematics expressions, which are not supported).
Scroll down to where the page says Commit changes. In the first box, add a short description of your changes to the file, e.g. “Add initial fun facts”. Click the green Commit changes button. You will see a rendering of your README.md
Markdown file on your repository’s main page.
As well as creating and editing pages in the browser, you can upload files from your computer.
Let’s upload an image file. As this repository is displayed on the public web, we should make sure we have permission to republish content. Use Creative Commons Search to find a nice picture. Download it to your computer. I like this one.
Check the licence; the picture above is CC0 so I don’t actually need to cite the author, but this isn’t always the case!
Open your GitHub repository page (e.g. https://github.com/username/hello
) in a web browser and upload your image file, either using the Upload files button or by dragging the file into your browser window. Write an informative commit message like “Add nice picture of chick”, then Commit changes.
Edit your README.md
file to include the image you just uploaded. Before committing, use the “Preview changes” tab to check your Markdown syntax is correct. Remember to cite the image source, if necessary, in a caption or footnote. Commit your changes.
Made a mistake? Simply edit the file again and make another commit.
You should now have a GitHub repository with multiple commits and files in it. Nostalgic for the old version? You can go back in time!
Visit the Commits page by clicking on the “# commits” link on the repository main page, or access the URL https://github.com/username/hello/commits/master
, replacing username
and hello
with your username and repository name, respectively.
You should see a list of every commit made so far, from newest to oldest.
If you fancy, ask your neighbour for their repository URL, visit one of their commits and leave a comment on it, commending them on their image choice, flair for Markdown syntax, etc. Mine’s here: https://github.com/Selbosh/hello
Editing documents online is handy, but probably not where you expect to be doing most of your work. Now we will learn to connect RStudio with GitHub.
In RStudio, go to File > New Project… > Version Control > Git.
Enter the URL of your GitHub repository into the “Repository URL” field, for example https://github.com/username/hello
, replacing username
with your GitHub user name and replacing hello
with the name you gave your new repository.
Choose somewhere to store the project on your computer, then click Create Project. Enter your GitHub username and password, if prompted.
RStudio will create a folder containing all your files so far, plus a hello.Rproj
file and a .gitignore
file.
If you want to associate an existing RStudio Project with a GitHub repository (rather than creating a new one), you can do so via Tools > Version Control > Project Setup….
Let’s make some local changes and push them to GitHub.
In RStudio, open README.md
. Modify some of the existing text if you like, and add the following:
## A new section
I just wrote *this* in RStudio!
Visit the “Git” pane in RStudio and tick the “Staged” box next to README.md
, then Commit. You will see a summary of all the changes you have made to the file.
Add a Commit message like “First edit from RStudio” and click Commit.
Then click Push, enter your username and password again if prompted, and your committed changes will be uploaded to GitHub.
If you are working on multiple computers, or you have collaborators, your local folder may not always be up to date with the latest version of the repository that is on GitHub. In this case, we will want to Pull.
In your web browser, edit README.md
again. For example, add:
## Another new section created on GitHub
I will need to **pull** this!
and commit the changes.
Your local copy of the repository is now out of date! Let’s remedy this. In RStudio, click Pull. Your files will magically update with the latest changes.
R Markdown supports a special format for previewing on the web. It generates plain Markdown (.md
) files and images suitable for display on GitHub.
Rename or make a copy of your README called README.Rmd
. Add this YAML header.
---
output: github_document
---
Add an R chunk and some inline R code, for example:
## Evaluated R code
`chickwts` dataset in R has `r nrow(chickwts)` rows.
The
```{r chickplot}
plot(chickwts$weight ~ chickwts$feed,
xlab = 'Feed type',
ylab = 'Weight (grams)',
col = 2:7)
```
Knit the document and check the local preview looks OK. Notice that README.md
has now been updated with a plain Markdown version of your generated document, and a folder called README_files/
has been created containing the rendered plot file(s).
Stage, commit and push all the new/modified files, which should be something like the following.
README.Rmd
README.md
README_files/figure-markdown_github-ascii_identifiers/chickplot-1.png
Check the version on GitHub. Does everything look right?
Multiple people can collaborate in a single GitHub repository, all with permission to commit, push and pull. This is something you can configure in your repository settings, but not something we will try for the moment.
Sometimes you may want to suggest changes to somebody else’s repository without them giving you full access. This involves making a Fork (your own personal copy) of the repository, making your suggested changes, then filing a Pull request. If the owner of the original repository approves, they will update the project with your changes.
You can do this if you want to correct a typographical error in a text document, or if you reckon you can fix a bug in someone else’s code.
You can do this task entirely in your web browser, or you can use RStudio.
https://github.com/your-username/wdsi-lab
README.md
in RStudio. Else, edit it in your web browser. Add your name and a link to your hello
repository (the one you created in the previous section) to the Markdown table there.Done? File an issue with any feedback you have about the course. Or, follow a link in the Hall of Fame to somebody else’s repository and practise leaving comments and filing pull requests.
I have written a blog post about Getting started with blogdown. You can also view the GitHub repository for that blog.
Or look at the source repository for a ‘real’ blog: https://github.com/Selbosh/selbosh.github.io
Spotted a typo? Want to write a guest post? File a pull request!