From 347f3723355dd3a84da02d7185adbe97ca3362fb Mon Sep 17 00:00:00 2001 From: Heerko Date: Sun, 11 Jan 2026 11:10:45 +0100 Subject: [PATCH] =?UTF-8?q?git=20=E2=89=A0=20github?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html_output/index.html | 2 +- slides.rst | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/html_output/index.html b/html_output/index.html index f9d061f..3088724 100644 --- a/html_output/index.html +++ b/html_output/index.html @@ -9,7 +9,7 @@ then do a little branch-based website exercise published live.

Archiving analogy:

What Git is not

  • Not a backup system (though it can help)
  • Not a file sync tool
  • Not a CMS
  • Not magic: it stores snapshots + metadata, you still choose what to record

Ecosystem

  • Git = the tool + file format
  • Hosting platforms: +- traceability (who/what/when/why)

Archiving analogy:

  • commit = deposit with metadata
  • log = inventory / finding aid
  • branch = parallel dossier / alternative interpretation

What Git is not

  • Git ≠ Github!
  • Not a backup system (though it can help)
  • Not a file sync tool
  • Not a CMS
  • Not magic: it stores snapshots + metadata, you still choose what to record

Ecosystem

  • Git = the tool + file format
  • Hosting platforms: - GitHub, GitLab, Bitbucket - Forgejo / Gitea (self-hosted)

Typical workflow

  • remote (server copy)
  • clone (get a copy)
  • push (send your commits back to the server)
  • pull/fetch (receive updates)

Workshop outcome

Each participant will:

  • clone a repo
  • create a branch
  • edit a simple profile website
  • commit changes with a clear message
  • push branch to Forgejo
  • see it appear in the live gallery

Install Git

Check first:

git --version

If missing:

  • macOS: Xcode Command Line Tools
  • Windows: Git for Windows
  • Linux: package manager (apt/dnf/pacman)

Minimum requirement: you can run git in a terminal.

Core concept: three areas

  1. Working tree: your files right now
  2. Staging area (index): selection for the next deposit
  3. Repository history: commits (deposits)

This is why Git feels "archival":

  • you intentionally select what becomes part of the record.

Commands: the essential set

  • git status (always)
  • git init (initalise a repo)
  • git commit (store changes in the repo)
  • git add (add files to the commit)
  • git branch (take a detour)
  • git merge (merge branches)
  • git checkout (get the repo at a specific state)
  • git fetch (sync with a repo online)
  • git pull (sync with a repo online and merge)
  • git diff (what changed)
  • git log (history)
  • plus: log, diff

Command: git init

Create a repository in the current folder. Use this when you are creating and working on your own projects.

git init

Creates a .git/ directory containing history + metadata.

For the exercise we will use git clone instead of git init.

Command: git clone

Cloen (copy) a repository in the current folder.

git clone https://git.hackersanddesigners.nl/hrk/braids <destination>

Downloads a repo from the web, complete with the full commit history and all changes.

Command: git status (your dashboard)

git status

Shows:

  • current branch
  • staged vs unstaged changes
  • untracked files

Command: git add (select files)

Stage files for the next commit.

git add index.html
diff --git a/slides.rst b/slides.rst
index f1c20cc..0c8c3c1 100644
--- a/slides.rst
+++ b/slides.rst
@@ -53,6 +53,7 @@ Archiving analogy:
 What Git is not
 ===============
 
+- Git ≠ Github!
 - Not a backup system (though it can help)
 - Not a file sync tool
 - Not a CMS