Session 14: Summary & Outlook

Track, organize and share your work: An introduction to Git for research

Course at University of Hamburg & Erasmus University Rotterdam

Slides | Source

License: CC BY 4.0 DOI

January 31 2025 (10:15 am)

1 Logistics & Admin

Schedule

No Date Title Contents Reading Survey/Quiz
1 2024-10-18 Introduction to version control Organizational matters
Overview of seminar sessions
Introduction to version control
Introduction to Git and its advantages
Intro to version control Course introduction Survey
2 2024-10-25 Command line File Systems
Benefits of the Command Line
Basic Command Line commands
Command Line Command Line Quiz
3 2024-11-01 Setup + Git Fundamentals Installation and configuration of Git
Initializing a Git repository
Basic Git commands
Installation, Setup, First steps with Git Installation Survey, Git Basics Quiz
4 2024-11-08 Basic Git workflow Practicing basic Git commands
Ignoring files with .gitignore
Good commit messages
First steps with Git Git Basics Quiz
5 2024-11-15 Git Essentials (Repetition & Practice) Practicing basic Git commands
Ignoring files with .gitignore
Good commit messages
Git Essentials Git Basics Quiz
6 2024-11-22 Git Branching and Merging Understanding branches in Git
Creating and switching between branches
Merging branches
Resolving merge conflict
Branches Git Branches Quiz
7 2024-11-29 Quarto Workshop Introduction to Quarto
8 2024-12-06 Introduction to GitHub Introduction to remote repositories
Creating a GitHub account
Creating and managing repositories on GitHub
Pushing and pulling changes
GitHub Intro GitHub Quiz
9 2024-12-13 GitHub with collaborators Cloning a remote repository
Branching and merging in a collaborative environment
Pull Requests
GitHub Issues
Graphical User Interfaces (GUIs), e.g., GitKraken
GitHub Intro, GitHub Issues GitHub Quiz
10 2024-12-20 Repetition and Practice Repetition and Practice
11 2025-01-10 Git(Hub) with the world Forking a remote repository
README files
Project Management
GitHub Advanced, GitHub Issues GitHub Quiz
12 2025-01-17 Publishing Creating Tags with Git
Creating Releases with GitHub
Zenodo for publishing
Tags and Releases
13 2025-01-24 Graphical User Interfaces Course evaluation
Repetition and practice
Intro to Graphical User Interfaces
Graphical User Interfaces
14 2025-01-31 Summary & Outlook Course evaluation results
Surprise
Summary & Outlook

2 Last session: Graphical User Interfaces

Last session: Graphical User Interfaces

Last session: Learning objectives

After the last session, you should now be able to answer the following questions / do the following:

💡 You understand the benefits of Git GUIs compared to the command line
💡 You can name at least two Git operations that can be considered easier in a GUI compared to the command line
💡 You try out different GUIs and become familiar with their features
💡 You know how to manage branches in a GUI

Your questions about the last session?

3 Summary

Learning Objectives (Preparation)

Introduction to Version Control

💡 You know what version control is.
💡 You can argue why version control is useful (for research).
💡 You can name benefits of Git compared to other approaches to version control.
💡 You can explain the difference between Git and GitHub.

Basics of the Command Line

💡 You can navigate directories using the command line.
💡 You can use shortcuts like the tilde or dots to navigate your file system.
💡 You can explain the difference between absolute and relative paths.
💡 You can use arguments and flags to modify command-line commands.
💡 You understand the concept of wild cards (*) and can use it for system navigation.

Setup & Configuration

💡 You know how to set up Git for the first time
💡 You have set up Git on your computer
💡 You understand the difference between the three Git configuration levels
💡 You know how to configure your username and email address in Git
💡 You have set up your preferred text editor when working with Git
💡 You can escape the command-line text editor Vim

Learning Objectives (Local Version Control)

First steps with Git

💡 You can initialize a Git repository.
💡 You can check the status of a Git repository.
💡 You understand the difference between the staging area and a commit.
💡 You can stage and commit changes.
💡 You understand the difference between a commit message and a description.

Git Essentials

💡 You know how to explore the commit history.
💡 You can compare different commits.
💡 You know how to use and create a .gitignore file.
💡 You can discuss which files can (not) be tracked well with Git and why.
💡 You know how to track empty folders in Git repositories.

Branches

💡 You understand the purpose and benefits of using branches in Git.
💡 You can create and switch between branches.
💡 You can merge branches and resolve merge conflicts.
💡 You can name at least three best practices when working with branches.

Learning Objectives (Collaboration)

Integration with GitHub / GitLab

💡 You can create a remote repository.
💡 You can connect your local Git repository to a remote repository service like GitHub or GitLab.
💡 You can pull and push changes to and from a remote repository.
💡 You can clone a repository from a remote repository.

Collaboration on GitHub / GitLab

💡 You know the purpose and components of a Pull Request.
💡 You know how to collaborate using the popular workflow strategy GitHub flow.
💡 You know the purpose and components of a README file.
💡 You can fork a repository.
💡 You can create a Pull Request from a forked repository.
💡 You can protect your main branch.

Tags, Releases & Publication

💡 You understand why Git Tags matter in version control and project management.
💡 You know the difference between lightweight and annotated tags and how to apply them.
💡 You can push and pull tags to a remote repository (e.g., GitHub).
💡 You understand how GitHub releases complement Git Tags.
💡 You can use Zenodo to archive your repository and make your work citable.

Goal

From this …

To this …

Open Questions about Git or GitHub?

4 Course evaluation

Thank you for your participation!

What did you like best about the course?

  • Hands-on format
  • Collaboration with Rotterdam
  • Organization and structure of the course
  • Mix of reading, exercises and discussion
  • Working together with many different people
  • The lecturer and teaching assistant and their dedication
  • The learning materials (book, website, etc.)
  • Individual support in breakout rooms and outside of class
  • The quizzes
  • That I am learning something that I can implement in my work

Improve: Collaboration between students

  • Hard to collaborate when people didn’t finish previous exercises.
  • Hard to collaborate when people had very different levels of experience and skills.
  • Would’ve been better to work consistently in the same group.

Suggestions

  • Set deadlines for mandatory tasks before the next session.
  • Have more participants in each breakout room for better support from advanced students.
  • Offer two types of assignments: a basic one for everyone and an optional advanced one.

Improve: Course structure & setting

  • The online format was problematic; the course would be more engaging in person.
  • Reading chapters on Zoom while others interacted was distracting.
  • Some sessions were mostly just reading, with students working on tasks alone with minimal input.

Suggestions

  • Assign these chapters as homework to complete outside of class.
  • Split tasks into smaller parts, like 20 minutes, with discussions in between.

Improve: Clarity of instructions

  • For some session, instructions were confusing and spread out in different places
  • Example: Forking exercise, with slides, book and contributing guidelines to consider

Suggestions

  • Give clearer guidelines and instructions for each session
  • Help students track their progress and requirements from the start

Improve: Misc

  • The course was a bit too fast.
  • Provide more foundational (background) knowledge on the topic.
  • Provide more time for questions at the end of each session (> 5 minutes).

5 Course requirements

From session 1: Your role

Active participation

  • This is a pass / fail course. You pass if you fulfill all course requirements:
  • Requirement 1: Come to at least 12 out of 14 sessions (85%)
  • Requirement 2: Complete all surveys/quizzes
  • Requirement 3: Complete all mandatory exercises (implemented in Git)

How do we verify the course requirements?

  1. Requirement 1: Sign the attendance list
  2. Requirement 2: Provide a personal codeword. At the end of the semester, send an email with your personal codeword to sekretariat-luv.psych@uni-hamburg.de (Christine Manor). We will send our secretary a list of personal codewords and she will return a list of names.
  3. Requirement 3: We check your GitHub repositories.

Your tasks

In order to pass this course, you should have accomplished the following tasks:

  1. You have a public city-guide repository on GitHub (Sessions 03, 08, 12).
  2. You added a text file (e.g., .qmd or .txt) with at least one city recommendation to the repository (Session 03).
  3. You added a .gitignore file (ignoring a random file like an image) to the repository (Sessions 04, 05).
  4. You created and merged a branch in your repository (Session 06).
  5. You created a pull request in a partner’s repository, e.g., by adding a new recommendation (Sessions 09, 10).
  6. You reviewed and merged the pull request of a partner in your city-guide repository (Sessions 09, 10).
  7. You created an issue in Lennart’s city-guide repository, a pull request from a fork fixing the issue, you implemented all additional requests and your pull request was approved and merged by Lennart (Session 11).
  8. You created a release of your city-guide repository on GitHub (Session 12).
  9. You completed all quizzes (see next slide).
  10. You completed the extra assignment (if necessary, see next slide).

Quiz participation

In order to pass this course, you should have completed all quizzes:

  1. Intro
  2. Command Line
  3. Git Basics
  4. Branches
  5. GitHub

How to verify participation

  1. At the end of the semester, send an email with your personal codeword to sekretariat-luv.psych@uni-hamburg.de (Christine Manor), not to us!
  2. Our secretary sends us an unsorted list with codewords.
  3. We verify the quiz participation for each codeword and send Christine a list with codewords that completed all quizzes.
  4. Christine compares the codewords with your names and send us an unsorted list with names.

Missed more than two sessions?

We will send you an email with an extra assignment.

6 Outlook: There’s more …

Graphical User Interfaces (GUIs) for Git

Integrated Development Environments (IDEs)

RStudio

MATLAB

Git Clients

GitKraken

GitHub Desktop

Mobile

Working Copy (iOS)

Rewriting history

See chapter “Rewriting History”

Credit: tech_kody via TikTok

Continuous Integration & Deployment (CI/CD)

from Suresoft

Example: Lennart’s recipes repo

  • Automated spell check
  • Rebuilding of project website

github.com/lnnrtwttkhn/recipes

Version Control for data: DataLad

… for data (binary files) © Jorge Cham (phdcomics.com)

Sadly, Git does not handle large files well.

datalad.org (from the DataLad Handbook by Wagner et al.)

7 Surprise

Kahoot

https://create.kahoot.it/share/git-kahoot/e7b7edf3-df7b-49be-9cd3-708f9f6a0e2e

Thank you!