feat(L07): add Git rebase and conflicts card

This commit is contained in:
user
2026-07-21 18:12:34 +02:00
commit f1528193ca
38 changed files with 7165 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
repo="$(mktemp -d)"; trap 'rm -rf -- "$repo"' EXIT
git -C "$repo" init -q -b main; git -C "$repo" config user.name Student; git -C "$repo" config user.email student@example.invalid
printf 'color=blue\n' >"$repo/settings.txt"; git -C "$repo" add .; git -C "$repo" commit -q -m base
git -C "$repo" switch -q -c feature; printf 'color=green\n' >"$repo/settings.txt"; git -C "$repo" commit -qam 'feature purple'
git -C "$repo" switch -q main; printf 'color=red\n' >"$repo/settings.txt"; git -C "$repo" commit -qam 'main red'
git -C "$repo" switch -q feature; set +e; git -C "$repo" rebase main >/dev/null 2>&1; set -e
printf 'color=purple\n' >"$repo/settings.txt"; git -C "$repo" add settings.txt; GIT_EDITOR=true git -C "$repo" rebase --continue >/dev/null 2>&1
count="$(git -C "$repo" rev-list --count HEAD)"; merges="$(git -C "$repo" rev-list --merges --count HEAD)"; subjects="$(git -C "$repo" log --reverse --format=%s | paste -sd, -)"; status="$(git -C "$repo" status --porcelain)"
[[ "$count" -eq 3 && "$merges" -eq 0 && "$subjects" == 'base,main red,feature purple' && "$(cat "$repo/settings.txt")" == 'color=purple' && -z "$status" ]]
printf 'PASS task03 commits=3 merges=0 subjects="base,main red,feature purple" final=purple clean=1\n'