No description
Find a file
2026-07-02 15:31:20 +02:00
workflows_sketches_presentation import from ASPP2025 2026-07-02 15:31:20 +02:00
cheatsheet.md import from ASPP2025 2026-07-02 15:31:20 +02:00
exercise.md import from ASPP2025 2026-07-02 15:31:20 +02:00
git-commands-visualizations.pdf import from ASPP2025 2026-07-02 15:31:20 +02:00
README.md import from ASPP2025 2026-07-02 15:31:20 +02:00
workflow_sketches.pdf import from ASPP2025 2026-07-02 15:31:20 +02:00

git

Setup

  • Login with your username found on your name badge and set the initial password for your account: https://git.aspp.school/user/login
  • You'll have to type that password many many times this week: choose wisely!
  • We will use the exercise in the repo for the rest of the lecture
  • find a partner to do pair-programming for this lecture by finding someone with the same tarot card as you
  • before starting, make yourself acquainted with the meanining and the power of the tarot cards: carefully read this booklet

A cautionary quote

My first instinct is to sell all my computers, fake my own death, move to another planet, and reinvent computing from scratch, rather than try to understand Git.

I rarely actually do that, mind you. But the urge is there.

— Lars Wirzenius (Linux kernel developer)

Warm-Up

  • how to start a repo from scratch?

  • how to revert mistakes?

  • building commits along the way interactively (for the mess around type of workflows)

  • check out these sketches for a graphical visualization of git commands!

Workflows

Look at the sketches

  1. lone scientist local ➔ working alone in the cellar without Internet (local git)
  2. lone scientist remote ➔ uploading their software to the Internet in the hope it can be useful for other people (local git + one personal repo on a git-forge)
  3. research group ➔ sharing one software project with some other befriended scientist working in a different place (local git + group repo on a git-forge + permissions)
  4. fully distributed software development ➔ using the most typical open source software workflows as used by numpy, scipy, sklearn, etc. (like above + we don't trust our contributors, i.e. work strictly with forks)

The Open Source workflow

  • remotes: git pull <from_where> <what>, git push <where> <what>, git fetch <from_where> <what>, git merge <another_branch>
  • git-forge: forks, branches and PRs: notice the difference between fork and clone!!!
  • strategies for keeping your fork up-to-date: your main, origin's and upstream's main, short-lived and long-lived topic branches
  • a more thorough and detailed explanation can be found on the SciPy Contributor's Guide. This guide can be adapted to your own needs, see gitwash.
  • GitHub and GitLab are just options (git≠GitHub): there are many git-forges out there, both installable on premises (e.g. forgejo) ) or as an online service for free and open source software (e.g. codeberg