Learning Objectives

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.

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


💡 Downloading and installing Git


💡 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

First steps with Git

💡 You can initialize a Git repository
💡 You can stage and commit changes
💡 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


💡 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

GitHub: Intro

💡 You can connect your local Git to a remote repository service.
💡 You can create a remote repository.
💡 You can pull and push changes to and from a remote repository.

GitHub: Advanced

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

Tags and Releases

💡 Understand why Git tags matter in version control and project management
💡 Learn when to use lightweight or annotated tags and how to apply them
💡 Get the hang of pushing and pulling tags in Git for seamless teamwork
💡 Explore how GitHub releases complement Git tags
💡 Discover how to use Zenodo to make your repository citable

Project Management


💡 You understand the purpose of GitHub Issues.
💡 You can create and manage Issues.
💡 You can reference an Issue in another issue.
💡 You can close an Issue with a commit or pull request.

Graphical User Interfaces

💡 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

Stashing and Co.

💡 You understand the importance of selectively staging and committing changes to avoid accidental commits.
💡 You can interactively review and stage changes within files.
💡 You can effectively remove unwanted changes and files from the repository.
💡 You understand how to safely revert commits and reset the repository to a previous state.