July 15, 2026
Lars Schöbitz
Think about the last time you published a written document:
Take some written notes.
From your pre-course survey (n = 18), three groups:
Three personas describe this room (Arti, Bianca, Cem). My focus learner is Arti.

Two icons tell you where a step happens:
Watch for these on every “Your turn” slide.
By the end of this workshop, you will be able to:
Commit cycle: create and clone a repository, and run the full pull, stage, commit, push cycle from the RStudio IDE, including reverting a commit.
Collaboration: create a branch and open a pull request, review a colleague’s pull request, and merge it after review.
Concept map: draw how Git and GitHub fit together.
| Time | Module |
|---|---|
| 09:30 - 10:00 | Arrival |
| 10:00 - 10:30 | Part 1: Welcome, concept-map intro, baseline map |
| 10:30 - 10:50 | Part 2: Create & Clone |
| 10:50 - 11:00 | Break |
| 11:00 - 11:30 | Part 3: The commit cycle |
| 11:30 - 11:50 | Part 4: Team work |
| 11:50 - 12:45 | Lunch Break |
| 12:45 - 13:05 | Part 5: Work on a branch |
| 13:05 - 13:45 | Part 6: Pull Request, Review, Merge |
| 13:45 - 13:50 | Movement Break |
| 13:50 - 14:00 | Part 7: Merge conflict |
| 14:00 - 14:30 | Part 8: Concept map revisit and wrap-up |
A concept map is things (nodes) joined by labelled arrows, where every label is a verb.
How does a document you write reach your co-author and come back? Draw it as a concept map.
In the room: place the yellow sticky note on your laptop when your map is done.
On Zoom: write “done” in the chat.
.xlsx.docx report.csv
Sit back and watch.
Note down any questions as they come up. We pick them up right after.
On github.com
website, public, with a README (so the clone is never empty).In RStudio
Set two options once (Tools > Global Options): General > never save .RData on exit; Code > use the native pipe |>.
Clone: File > New Project > Version Control > Git, paste the HTTPS URL, create the project inside your gitrepos/gh-USERNAME folder.
Find .gitignore and website.Rproj in the Git tab with their yellow ? icons.
In the room: place the yellow sticky note on your laptop when you see the two yellow ? icons.
On Zoom: write “done” in the chat.
Everyone with the two yellow ? icons? Take your sticky note back down.
We move on together.




Anything from creating and cloning you’d like clarified before the break?
Please get up and move!
Image generated with DALL-E 3 by OpenAI
git pull for you..docx
Sit back and watch.
Note down any questions as they come up. We pick them up right after.
The cycle, always in this order: Pull, Stage, Commit, Push (PSCP).
In RStudio
README.md: describe your website in one sentence. Save, and spot the blue M in the Git tab.On github.com
In the room: place the yellow sticky note on your laptop when you can see your commit on GitHub.
On Zoom: write “done” in the chat.
Now the same cycle, but starting on GitHub. In your website repository:
On github.com
Edit README.md and commit the change (the pencil icon, then “Commit changes”).
Add a file inside a new folder (Add file > Create new file, type data/notes.md).
In RStudio
Place the yellow sticky note on your laptop when the two new commits show up in RStudio.





Anything from the commit cycle you’d like clarified before we move on?
On github.com
github.com/USERNAME, where USERNAME is your partner’s username.In RStudio
Clone their website repository (Code button, HTTPS URL, File > New Project > Version Control > Git) into a new folder gitrepos/gh-USERNAME that reflects your partner’s username.
Edit the README: add “This repo contains a personal website for USERNAME.”
Run the mantra: Pull, Stage, Commit, Push.
What happens?
In the room: place the yellow sticky note on your laptop when something unexpected happens.
On Zoom: write “blocked” in the chat.
A one-page handout: draw a line from each Git command to the button that runs it in RStudio or on GitHub.
The afternoon starts hands-on, and your partner is waiting for you.
main
Sit back and watch.
Note down any questions as they come up. We pick them up right after.
Your team shares one manuscript repository, washinvestments-<team> (for example washinvestments-red).
On github.com
washinvestments-<team> repository (org page, search your team name).In RStudio (one person drives)
dev.manuscript.qmd: put in your own author details in one of the two author slots. Render.In the room: place the yellow sticky note on your laptop when your push has finished.
On Zoom: write “done” in the chat.





Sit back and watch.
Note down any questions as they come up. We pick them up right after.
You each take a role: Author owns the pull request; Reviewer reviews it.
On github.com
dev branch. Title it so your reviewer knows what changed.In RStudio
main, Pull, and switch back to dev.On github.com
In the room: place the yellow sticky note on your laptop after the switch back to dev. Then swap roles.
On Zoom: write “done” in the chat.





Sit back and watch.
A conflict is coming. Watch how Git asks me to choose.
When Git stops, it writes both versions into the file:
<<<<<<< HEAD
Investments in WASH: a five-year review
=======
WASH investments: evidence from five years
>>>>>>> main
<<<<<<< HEAD: your version=======: the divider>>>>>>> main: the incoming versionDelete the markers, keep the text you want, then Stage, Commit, Push.
Draw a concept map of Git and GitHub as you understand them now.
With your consent, I would like to photograph both maps (anonymously) to improve this workshop.
Matched to the three objectives from this morning:
Slides created via revealjs and Quarto: https://quarto.org/docs/presentations/revealjs/
Access slides as PDF on GitHub
All material is licensed under Creative Commons Attribution 4.0 International.