diff --git a/html_output/2026-01-14_km.html b/html_output/2026-01-14_km.html index 64406c7..fb73f96 100644 --- a/html_output/2026-01-14_km.html +++ b/html_output/2026-01-14_km.html @@ -5,8 +5,9 @@ TeX : { extensions : ['color.js'] } });
Braids - Intro to git with H&D
Goal: introduce Git as an archiving practice, -then do a little branch-based website exercise published live.
Enumerated list ends without a blank line; unexpected unindent.
3. Install Git (10 min) -2. Core concepts: branching & merging (15 min) +then do a little branch-based website exercise published live.
Enumerated list ends without a blank line; unexpected unindent.
4. Essential commands: (10 min) +2. Core concepts: branching & merging (5 min) +4. Extended commands: (10 min) 4. Forgejo: accounts + clone/push permissions (10 min) 5. Exercise: branch a page, publish live, iterate (35 min) 6. Wrap-up: good practices + next steps (5 min)
If you have been working on a file on your computer and the directory starts to look like this:
motivation-letter-first-draft.odt
@@ -16,23 +17,23 @@ then do a little branch-based website exercise published live.Then git can be helpful!
is the archive analogy helpful? it feels a bit like comapring something abstract with something else thats abstract
Archiving analogy: +motivation-letter-FINAL-pictures-small.odt
Then git can be helpful!
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
is the archive analogy helpful? it feels a bit like comapring something abstract with something else thats abstract
Archiving analogy: - commit = deposit with metadata - log = inventory / finding aid -- branch = parallel dossier / alternative interpretation
In git, a commit is a checkpoint in the repository timeline. -A commit contains this information:
Every time an author makes a set of changes that are meaningful together, she commits her changes by describing them, creating a checkpoint in the timeline to return to in the future.
Commits do not know about the timeline they are in. They only know of their preceeding commit, otherwise known as their "parent".
You can always checkout a commit: visit the repository at that checkpoint on its timeline. Basically time-travel.




This is why Git feels "archival": -- you intentionally select what becomes part of the record.
In git, a branch is a named series of commits. In the previous example, there is only one branch, named "main" by default.
In a situation where you want to "take a detour" from the main course of the development of a repository, you can create a separate branch. Now, parrallel timelines of the same repository exist next to each other.
There is a lot of discourse around when to branch and how often. It varies from person to person and group to group.
From the perspective of git, since branching doesn't add any technical overload on a project, it is encouraged to branch more and branch often. From a logical perspective, every branch creates a parrallel timeline, and this might be a lot to keep track of mentally.
Branching allows for and encourages collaboration and is at the core of the free and open source software movement.

In git, merging is when you incorporate commits from a separate branch into your own.
After merging two branches, a merge commit is created. This is an exceptional commit that has two parent commits instead of one.

Use case: tracking changes on a local, private folder, such as bookkeeping.
Use case: tracking and backing up a private folder, such as a password store.
Use case: tracking and collaborating on a repository with others such as a website project.
Use case: tracking and collaborating on a repository with others such as a website project, where multiple features and parrallel versions of the website exist.
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
Check first:
git --versionIf missing:
Minimum requirement: you can run git in a terminal.
Create a repository in the current folder. -Use this when you are creating and working on your own projects.
git initCreates a .git/ directory containing history + metadata.
For the exercise we will use git clone instead of git init.
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.
git statusShows:
Stage files for the next commit.
git add index.html -git add assets/
Stage everything (use carefully):
git add .
Staging is curatorial: select what belongs together.
git commit -m "Added name to my page"
Good commit message pattern:
git log --oneline --graph
Gives a quick "finding aid" of earlier commits. Press 'q' to exit.
List branches:
git branchCreate a branch:
git branch people/yourname
Switch to branch:
git checkout people/yourname
Shortcut (create + switch):
git checkout -b people/yourname
Branches are parallel dossiers: safe space for changes.
Push your branch to the server:
git push -u origin people/yourname
Pull updates from server:
git pullDuring the exercise you mostly push your branch. -Pull is mainly for getting new changes on main (if needed).
Remove a tracked file and stage the removal:
git rm old.html -git commit -m "Remove old page"
For this workshop you probably will not need it.
You will: +- branch = parallel dossier / alternative interpretation
In git, a commit is a checkpoint in the repository timeline. +A commit contains this information:
Every time an author makes a set of changes that are meaningful together, she commits her changes by describing them, creating a checkpoint in the timeline to return to in the future.
Commits do not know about the timeline they are in. They only know of their preceeding commit, otherwise known as their "parent".
You can always checkout a commit: visit the repository at that checkpoint on its timeline. Basically time-travel.




This is why Git feels "archival": +- you intentionally select what becomes part of the record.
Use case: tracking changes on a local, private folder, such as bookkeeping.
Use case: tracking and backing up a private folder, such as a password store.
Use case: tracking and collaborating on a repository with others such as a website project.
Check first:
git --versionIf missing:
Minimum requirement: you can run git in a terminal.
Create a repository in the current folder. +Use this when you are creating and working on your own projects.
git initCreates a .git/ directory containing history + metadata.
For the exercise we will use git clone instead of git init.
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.
git statusShows:
Stage files for the next commit.
git add index.html +git add assets/
Stage everything (use carefully):
git add .
Staging is curatorial: select what belongs together.
Remove a tracked file and stage the removal:
git rm old.html +git commit -m "Remove old page"
For this workshop you probably will not need it.
git commit -m "Added name to my page"
Good commit message pattern:
git log --oneline --graph
Gives a quick "finding aid" of earlier commits. Press 'q' to exit.
git checkout your_commit_id
See your working tree as it would have been at a specific commit on the timeline.
Push your branch to the server:
git push -u origin people/yourname
git pushPull updates from server:
git pullDuring the exercise you mostly push your branch. +Pull is mainly for getting new changes on main (if needed).
In git, a branch is a named series of commits. In the previous example, there is only one branch, named "main" by default.
In a situation where you want to "take a detour" from the main course of the development of a repository, you can create a separate branch. Now, parrallel timelines of the same repository exist next to each other.
There is a lot of discourse around when to branch and how often. It varies from person to person and group to group.
From the perspective of git, since branching doesn't add any technical overload on a project, it is encouraged to branch more and branch often. From a logical perspective, every branch creates a parrallel timeline, and this might be a lot to keep track of mentally.
Branching allows for and encourages collaboration and is at the core of the free and open source software movement.

In git, merging is when you incorporate commits from a separate branch into your own.
After merging two branches, a merge commit is created. This is an exceptional commit that has two parent commits instead of one.

Use case: tracking and collaborating on a repository with others such as a website project, where multiple features and parrallel versions of the website exist.
Bullet list ends without a blank line; unexpected unindent.
List branches:
git branchCreate a branch:
git branch people/yourname
Switch to branch:
git checkout people/yourname
Shortcut (create + switch):
git checkout -b people/yourname
Branches are parallel dossiers: safe space for changes.
You will: - create an account - clone via HTTPS -- push your branch
Share your username with us so we can add you as a collaborator
Rules for today:
Resources:
You will build a (deliberately) simple page:
Workflow loop:
clone -> branch -> edit -> status -> add -> commit -> push -> view -> iterate
cd to a logical location in your computer, then:
git clone https://git.hackersanddesigners.nl/hrk/braids +- push your branchShare your username with us so we can add you as a collaborator
Rules for today:
- do NOT push to main
- create your branch under people/<your-slug>
Resources:
You will build a (deliberately) simple page:
Workflow loop:
clone -> branch -> edit -> status -> add -> commit -> push -> view -> iterate
cd to a logical location in your computer, then:
git clone https://git.hackersanddesigners.nl/hrk/braids cd braids
If everything went well, check the repo with:
git status -git branch
The first time you checkout from https://git.hackersanddesigners.nl the server will ask you for credentials. These will be remembered, so only once.
Choose a slug: lowercase, no spaces. This can be your name or an alias. Example: change people/<your-slug> in the command below to people/alex. From here on out replace <your-slug> with your chosen name.
git checkout -b people/<your-slug>
Confirm:
git statusEdit the root index.html (and optionally style.css, assets/).
Make a visible change first:
Then check changes:
git diff -git status
git add index.html +git branch
The first time you checkout from https://git.hackersanddesigners.nl the server will ask you for credentials. These will be remembered, so only once.
Choose a slug: lowercase, no spaces. This can be your name or an alias. Example: change people/<your-slug> in the command below to people/alex. From here on out replace <your-slug> with your chosen name.
git checkout -b people/<your-slug>
Confirm:
git statusEdit the root index.html (and optionally style.css, assets/).
Make a visible change first:
Then check changes:
git diff +git status
git add index.html git commit -m "Customize profile page for <your-slug>"
If you added assets:
git add assets/ -git commit -m "Add assets for <your-slug>"
Small commits win. One change = one deposit.
git push -u origin people/<your-slug>
(Again, change <your-slug>!)
If prompted for credentials, use your Forgejo login method.
Open the gallery:
Find your card:
Iterate:
edit -> status -> add -> commit -> push -> refresh
Wrong branch:
git branch +git commit -m "Add assets for <your-slug>"
Small commits win. One change = one deposit.
git push -u origin people/<your-slug>
(Again, change <your-slug>!)
If prompted for credentials, use your Forgejo login method.
Open the gallery:
Find your card:
Iterate:
edit -> status -> add -> commit -> push -> refresh
Wrong branch:
git branch git checkout people/<your-slug>
Nothing staged:
git status -git add index.html
Push rejected (main protected):
Auth issues:
Bad:
Better:
Rule: message should still make sense in 6 months.
Learn more:
End: remind participants their branches will be removed after the workshop.