From 428851b08a00f73934802bca69c2488d5b920242 Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Sun, 28 Jun 2026 17:56:22 +0300 Subject: [PATCH 01/10] docs(lab1): start submission Signed-off-by: Ahmad Sarhan --- submissions/lab1.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 submissions/lab1.md diff --git a/submissions/lab1.md b/submissions/lab1.md new file mode 100644 index 000000000..38d979193 --- /dev/null +++ b/submissions/lab1.md @@ -0,0 +1 @@ +# Lab 1 submission From 4ad32ef2431d48e1cf88edc5c57df11cc20c31a7 Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Sun, 28 Jun 2026 22:45:28 +0300 Subject: [PATCH 02/10] docs(lab1): finishing task1 Signed-off-by: Ahmad Sarhan --- screenshots/verfied_badge.png | Bin 0 -> 91352 bytes submissions/lab1.md | 77 ++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100755 screenshots/verfied_badge.png diff --git a/screenshots/verfied_badge.png b/screenshots/verfied_badge.png new file mode 100755 index 0000000000000000000000000000000000000000..d159f6fbc23e0d43c4ea0c50ef3a942517b1524d GIT binary patch literal 91352 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 z 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

@4>)<`* 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 feature/lab1, origin/feature/lab1) +Good "git" signature for ahmadhasansarhana@gmail.com with RSA key SHA256:E3jxNqQOmWqV0tyNbDOrEN0PDgkqcYP0I8qC0Lf7GLE +Author: Ahmad Sarhan +Date: Sun Jun 28 17:56:22 2026 +0300 + + docs(lab1): start submission + + Signed-off-by: Ahmad Sarhan +``` + + +A Screenshot of Verified badge on your platform's PR/commit page +![verified-badge](../screenshots/verfied_badge.png) + + +Why signed commits matter? +Signed commits matter because they give maintainers and users a cryptographic way to verify who authored or approved a change, instead of trusting only a username, email or repository access. In the XZ Utils backdoor case, malicious code was able to enter the release process after trust in a maintainer identity had been built over time, showing that software supply-chain attacks often target trust itself. Commit signing is not a complete defense, but it raises the bar by making suspicious, unsigned, or unexpectedly signed changes easier to detect before they become part of critical software. From 00c23c807967be7b777d33137fd04ea082d73157 Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Thu, 2 Jul 2026 01:21:57 +0300 Subject: [PATCH 03/10] docs: add PR template Signed-off-by: Ahmad Sarhan --- .github/pull_request_template.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..1a68db5e5 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,13 @@ +## Goal + + +## Changes +- + +## Testing + + +## Checklist +- [ ] Title is a clear sentence (≤ 70 chars) +- [ ] Commits are signed (`git log --show-signature`) +- [ ] `submissions/labN.md` updated From 36b4d4ed35f92158187761d06bae1cec768eb09c Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Thu, 2 Jul 2026 01:26:11 +0300 Subject: [PATCH 04/10] docs(lab1): finish submission Signed-off-by: Ahmad Sarhan --- submissions/lab1.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/submissions/lab1.md b/submissions/lab1.md index 05b67dafc..2ed594589 100644 --- a/submissions/lab1.md +++ b/submissions/lab1.md @@ -76,3 +76,8 @@ A Screenshot of Verified badge on your platform's PR/commit page Why signed commits matter? Signed commits matter because they give maintainers and users a cryptographic way to verify who authored or approved a change, instead of trusting only a username, email or repository access. In the XZ Utils backdoor case, malicious code was able to enter the release process after trust in a maintainer identity had been built over time, showing that software supply-chain attacks often target trust itself. Commit signing is not a complete defense, but it raises the bar by making suspicious, unsigned, or unexpectedly signed changes easier to detect before they become part of critical software. + + +## Task 2 - Pull Request Template & First PR + +Added a `.github/pull_request_template.md` From 2184bc3020e48aaf2b45eb53c2bb74b0dfea7bdc Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Thu, 2 Jul 2026 01:52:41 +0300 Subject: [PATCH 05/10] docs(lab1): complete task3 Signed-off-by: Ahmad Sarhan --- submissions/lab1.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/submissions/lab1.md b/submissions/lab1.md index 2ed594589..b987fd161 100644 --- a/submissions/lab1.md +++ b/submissions/lab1.md @@ -81,3 +81,10 @@ Signed commits matter because they give maintainers and users a cryptographic wa ## Task 2 - Pull Request Template & First PR Added a `.github/pull_request_template.md` + + +## Task 3 - GitHub Community Engagement + +Starring repositories matters in open source because it shows support, helps useful projects gain visibility. + +Following developers helps to learn from their work, stay connected, and build professional relationships that support growth. \ No newline at end of file From c931ac441978e3c8e69a190e1196f6f9bbe72b30 Mon Sep 17 00:00:00 2001 From: Dmitrii Creed Date: Thu, 2 Jul 2026 17:16:36 +0400 Subject: [PATCH 06/10] docs(lab11): fix nixpkgs pin vs go.mod collision; add network fallback pitfalls - nixos-24.11 default buildGoModule ships Go 1.23 while app/go.mod requires go 1.24 -> every student hits 'go.mod requires go >= 1.24'. Bump example pin to nixos-25.11 (default buildGo125Module) in lab + reading flake example - new pitfall: fix Go version in the flake (buildGo124Module / override), never downgrade app/go.mod - new pitfall + prereq fallback: install.determinate.systems (CloudFront) may time out even when curl -I returns 200; official nixos.org installer (Fastly) as fallback, WSL2-vs-browser-VPN check, TUNA mirror substituter Signed-off-by: Dmitrii Creed --- labs/lab11.md | 5 ++++- lectures/reading11.md | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/labs/lab11.md b/labs/lab11.md index 7095f9939..1a470c31a 100644 --- a/labs/lab11.md +++ b/labs/lab11.md @@ -36,6 +36,7 @@ By the end: - Read [Reading 11](../lectures/reading11.md) - Install Nix with Flakes enabled: - [Determinate Nix Installer](https://determinate.systems/posts/determinate-nix-installer/) (recommended) + - If `install.determinate.systems` is unreachable or times out from your network, use the [official installer](https://nixos.org/download/) (`sh <(curl -L https://nixos.org/nix/install) --daemon`) — it is served from a different CDN. Enable flakes afterwards: add `experimental-features = nix-command flakes` to `~/.config/nix/nix.conf` - ≥ 8 GB free disk - A second machine, fresh Docker container (`docker run -it nixos/nix bash`), or a colleague — for verifying reproducibility @@ -47,7 +48,7 @@ By the end: Your `flake.nix` at the **repo root** MUST: -1. Pin **nixpkgs** to a specific channel revision in `inputs:` (e.g. `nixos-24.11`) +1. Pin **nixpkgs** to a specific channel revision in `inputs:` (e.g. `nixos-25.11`) — note that `app/go.mod` requires **Go ≥ 1.24**, so the channel's default `buildGoModule` must ship at least that (see Common Pitfalls) 2. Expose a package `quicknotes` (and `default`) that **builds the QuickNotes Go source from `app/`** 3. Use `buildGoModule` (or `buildGoApplication`, etc. — your choice; document why) 4. Set **`CGO_ENABLED = 0`** so the binary is static @@ -248,6 +249,8 @@ In `submissions/lab11.md`: - 🪤 **Different hashes on two machines** — usually means `flake.lock` is not committed. The lockfile pins nixpkgs to a specific revision - 🪤 **Out of disk** — Nix store grows. `nix store gc` reclaims unreferenced paths - 🪤 **`nix build` requires internet on first run** — downloads pre-built artifacts from cache.nixos.org. Subsequent builds are mostly local +- 🪤 **`go.mod requires go >= 1.24` from `buildGoModule`** — your pinned nixpkgs ships an older default Go (e.g. `nixos-24.11` → Go 1.23). Fix it **in the flake**: pin `nixos-25.11` or newer, or use `buildGo124Module` / `buildGoModule.override { go = pkgs.go_1_24; }`. Don't downgrade `app/go.mod` — the app source is not yours to edit +- 🪤 **Installer or build times out on `install.determinate.systems`** — the host may be unreachable from your network even when a plain `curl -I` returns 200. Check from the *same terminal* where you run nix (a browser VPN does not cover WSL2 traffic): `curl -I https://install.determinate.systems` vs `curl -I https://cache.nixos.org/nix-cache-info`. Fall back to the official nixos.org installer (different CDN); builds themselves only need cache.nixos.org and github.com. If cache.nixos.org is also blocked, use a mirror substituter: `--option substituters "https://mirrors.tuna.tsinghua.edu.cn/nix-channels/store"` - 🪤 **WSL2 multi-user Nix is finicky** — use the Determinate installer; or single-user on WSL2 --- diff --git a/lectures/reading11.md b/lectures/reading11.md index 7ce223ee0..3d460f0df 100644 --- a/lectures/reading11.md +++ b/lectures/reading11.md @@ -94,7 +94,7 @@ Flakes (Nix 2.4+, standard since ~2024) lock **all** external dependencies — i # flake.nix { description = "QuickNotes — DevOps-Intro project"; - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; outputs = { self, nixpkgs }: let pkgs = nixpkgs.legacyPackages.x86_64-linux; From 03004f77a002fde98cfe4e33bff0aa2de8d24d1e Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Mon, 13 Jul 2026 21:04:19 +0300 Subject: [PATCH 07/10] docs: upstream moved while you worked Signed-off-by: Ahmad Sarhan From 9ce4378ccb678fd6d4bb6dccf8e8c754c1b585a9 Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Tue, 7 Jul 2026 01:29:31 +0300 Subject: [PATCH 08/10] wip(lab2): start Signed-off-by: Ahmad Sarhan --- submissions/lab2.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 submissions/lab2.md diff --git a/submissions/lab2.md b/submissions/lab2.md new file mode 100644 index 000000000..5bed3d6c3 --- /dev/null +++ b/submissions/lab2.md @@ -0,0 +1 @@ +important work From c595089a6fa38a6fddc81768777bc4f359b9c6a8 Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Tue, 7 Jul 2026 01:29:44 +0300 Subject: [PATCH 09/10] wip(lab2): more progress Signed-off-by: Ahmad Sarhan --- submissions/lab2.md | 1 + 1 file changed, 1 insertion(+) diff --git a/submissions/lab2.md b/submissions/lab2.md index 5bed3d6c3..ee8233a95 100644 --- a/submissions/lab2.md +++ b/submissions/lab2.md @@ -1 +1,2 @@ important work +more important work From 12ec26e122bdf7b092a12cd4fd331e8419e8fc1a Mon Sep 17 00:00:00 2001 From: Ahmad Sarhan Date: Mon, 13 Jul 2026 21:39:03 +0300 Subject: [PATCH 10/10] docs(lab2): complete lab2 submission Signed-off-by: Ahmad Sarhan --- submissions/lab2.md | 376 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 374 insertions(+), 2 deletions(-) diff --git a/submissions/lab2.md b/submissions/lab2.md index ee8233a95..c962bb0e6 100644 --- a/submissions/lab2.md +++ b/submissions/lab2.md @@ -1,2 +1,374 @@ -important work -more important work +# Lab 2 — Version Control Deep Dive: Internals, Recovery, Rebase + + + +## Task 1 — Git Object Model + Reflog Recovery + + + +### 1.1 Exploring Repo's plumbing + + + +```bash + +$ git rev-parse HEAD # prints the full commit hash of the commit currently checked out as HEAD + +2184bc3020e48aaf2b45eb53c2bb74b0dfea7bdc + + + + +$ git cat-file -t HEAD # prints the type of the Git object that HEAD points to. + +commit + + + + +$ git cat-file -p HEAD # pretty-prints the contents of the Git object that HEAD points to + +tree e098de2ba5d7e1cff9486210d1475c4540fd38b8 # tree object for the commit (tree SHA) + +parent 36b4d4ed35f92158187761d06bae1cec768eb09c # This is the previous commit (parent SHA) + +author Ahmad Sarhan 1782946361 +0300 # Author + +committer Ahmad Sarhan 1782946361 +0300 + +gpgsig -----BEGIN SSH SIGNATURE----- # commit signature + + U1NIU0lHAAAAAQAAAZcAAAAHc3NoLXJzYQAAAAMBAAEAAAGBALK3wFYhYK9fs78w3wkNN9 + + CpI+xdCDRAlul6ievBHN/zadooQJcvWBAxDVFNdisahqjjbWYD2a3MS+7f6+bnN7o48ayX + + 9hvTbxaeNJbv+Is5iRF/8WbjGV1+uSA+69DQsYNX1elliJXoRibe+w6EothuU8LIHYbCzO + + fF1+xTq40cNZuY0HhF3PWFHrM8PLAUABgFgatmIynznMhfXrFJB+mKX4CQa8HNDDhBTk/j + + ohaQt1YdYh3zyeUE6pKj1XnYyWWjJzDZWLm9w9jvzqWkVg9PdTxm2AOBIu4fLrjECwRBnl + + aDZPBcHzOblYD5oSCMSQMksZyg2osJu/5SAB3gQQo5xacK/fmIwkfNau8AArCydiPg15Ks + + FFJlZJ3je/5Prb2g9lhA4D2f8L7T2AS79vuWgwsLYoFxwTPqQ0JndkWSrrkGaYRVghGHJu + + UWJ86UGF/pSmqznyzinO6XzZ+KAtBQwMooNo4esDthr6PllrC5AIB3XbrfhpGGrQiPg037 + + wwAAAANnaXQAAAAAAAAABnNoYTUxMgAAAZQAAAAMcnNhLXNoYTItNTEyAAABgB26lnM3aZ + + Oe5QJY5X2RD6jXd1mLQpqu9Logd8mHXQXi5H69ikR7CH0FlPv8g8c8bNCrCb7hPSpdnUnA + + 7TEIpNW22ds0ukUXmcPxEXbpY8BcNZ1T3T/l/ccZJPeFGyTppXSpCPRfUnMUUiwNUq4qAf + + Rx9inyYbivjfiYZsiaEeONiNsC9B7pzO5u8gWgwFQldNIhb/Di8z7jOV3Lbsh/wnR5n/KV + + QvU/F49MLVk5hQSjN4WkyCJPWmQpWcJ0NB8ptML0reC5caSNf/3e0VjO3Kn+O8xIfGAesB + + jfpQe3xrkc4azflFfJ8I5eL1vksPBQ3dZJTEdK8la5LX5YoI0lhc3K/kadTkR9bdvyiocx + + 5XqEGTL3umKSKyWVy4RYSSvkHeu9h0236uu0+yIavo++I0ZYnzYrctAu/i3K4o6xyIZR0W + + QcY79KnRp38Kq5sm4Y20z6Mnq3gzXm/CB4gWrFCqqDoL+cp/QyyDCcfR38QB04Spi/9M10 + + /tXDBetvpaY8MQ== + + -----END SSH SIGNATURE----- + + + +docs(lab1): complete task3 + + + +Signed-off-by: Ahmad Sarhan + + + + +$ git cat-file -p e098de2ba5d7e1cff9486210d1475c4540fd38b8  # pretty-prints a Git tree object. + +100644 blob 1c0a1e94b7bbdd951f456cda51af6b8484cc3cee    .gitignore + +100644 blob d10c04c6e7e0014f4fe883599c11747c15012d4e    README.md + +040000 tree 7d0898a908e274ea809722844cdbd836f3b1c05a    app + +040000 tree 89bc50bc368eff78a23dcf65c83a925674de2e66    labs + +040000 tree 3f11973a71be5915539cb53313149aa319d69cb5    lectures + +040000 tree 60f1f7f350aa6b3db0b98b650963b0b621663b29    screenshots + +040000 tree 2c0d6decede7b2da41e0e79f95a88c87ba50b21d    submissions + +# + + + + +$ git cat-file -p d10c04c6e7e0014f4fe883599c11747c15012d4e # README.md + +# DevOps Intro — Modern DevOps Practices Through One Project + + + +[![Course](https://img.shields.io/badge/Course-DevOps%20Intro-blue)](#course-roadmap) + +[![Project](https://img.shields.io/badge/Project-QuickNotes%20(Go)-success)](#the-project-quicknotes) + +[![Duration](https://img.shields.io/badge/Duration-10%20Weeks-lightgrey)](#course-roadmap) + +[![Grading](https://img.shields.io/badge/Grading-70--14--5--30--30-orange)](#grading) + +... + +``` + + + +### 1.2: Look inside `.git/` + + + +```bash + +$ ls -la .git/ # high level directory structure + +total 60 + +drwxr-xr-x  7 sarhan sarhan 4096 Jul  6 21:59 . + +drwxr-xr-x  8 sarhan sarhan 4096 Jul  2 01:23 .. + +-rw-r--r--  1 sarhan sarhan   86 Jul  2 01:52 COMMIT_EDITMSG + +-rw-r--r--  1 sarhan sarhan  215 Jul  6 21:58 FETCH_HEAD + +-rw-r--r--  1 sarhan sarhan   29 Jul  6 21:59 HEAD + +-rw-r--r--  1 sarhan sarhan   41 Jul  2 01:53 ORIG_HEAD + +-rw-r--r--  1 sarhan sarhan  594 Jul  6 21:59 config + +-rw-r--r--  1 sarhan sarhan   73 Jun 28 17:38 description + +drwxr-xr-x  2 sarhan sarhan 4096 Jun 28 17:38 hooks + +-rw-r--r--  1 sarhan sarhan 3311 Jul  2 01:52 index + +drwxr-xr-x  2 sarhan sarhan 4096 Jun 28 17:38 info + +drwxr-xr-x  3 sarhan sarhan 4096 Jun 28 17:38 logs + +drwxr-xr-x 47 sarhan sarhan 4096 Jul  6 21:58 objects       # Stores commits, trees, blobs, and tags + +-rw-r--r--  1 sarhan sarhan  112 Jun 28 17:38 packed-refs   + +drwxr-xr-x  5 sarhan sarhan 4096 Jun 28 17:38 refs          # Stores branches and tags + + + + +$ cat .git/HEAD   + +ref: refs/heads/feature/lab2 # Points to the current branch + + + + +$ ls .git/refs/heads/ # branches + +feature  main + + + +$ ls .git/refs/heads/ -R + +.git/refs/heads/: + +feature  main + + + +.git/refs/heads/feature: + +lab1  lab2 + + + + + +$ ls .git/objects/ | head # subdirs by first 2 SHA chars + +00 + +05 + +0a + +0c + +0e + +0f + +13 + +14 + +1a + +1c + + + + +$ find .git/objects -type f | wc -l # counts how many files exist inside Git’s object database + +50 + + + +$ git count-objects # counts only loose objects + +47 objects, 268 kilobytes + +# Loose objects are individual Git objects stored as separate compressed files, before Git packs them together into packfiles. + +``` + + + +### 1.3: Simulate disaster + recover + +```bash +$ echo "important work" > submissions/lab2.md +$ git add submissions/lab2.md +$ git commit -S -s -m "wip(lab2): start" +[feature/lab2 82133e5] wip(lab2): start + 1 file changed, 1 insertion(+) + create mode 100644 submissions/lab2.md +$ echo "more important work" >> submissions/lab2.md +$ git commit -S -s -am "wip(lab2): more progress" +[feature/lab2 be1e4df] wip(lab2): more progress + 1 file changed, 1 insertion(+) + +$ git reset --hard HEAD~2 +HEAD is now at 2184bc3 docs(lab1): complete task3 + +$ git status +On branch feature/lab2 +nothing to commit, working tree clean + + +$ git log --oneline +2184bc3 (HEAD -> feature/lab2, origin/feature/lab1, feature/lab1) docs(lab1): complete task3 +36b4d4e docs(lab1): finish submission +4ad32ef docs(lab1): finishing task1 +428851b docs(lab1): start submission +... + + +$ git reflog # commits are still here +2184bc3 (HEAD -> feature/lab2, origin/feature/lab1, feature/lab1) HEAD@{0}: reset: moving to HEAD~2 +be1e4df HEAD@{1}: commit: wip(lab2): more progress +82133e5 HEAD@{2}: commit: wip(lab2): start +2184bc3 (HEAD -> feature/lab2, origin/feature/lab1, feature/lab1) HEAD@{3}: checkout: moving from feature/lab1 to feature/lab2 +2184bc3 (HEAD -> feature/lab2, origin/feature/lab1, feature/lab1) HEAD@{4}: commit: docs(lab1): complete task3 + + +$ git reset --hard be1e4df # recovery +HEAD is now at be1e4df wip(lab2): more progress + + +$ git status +On branch feature/lab2 +nothing to commit, working tree clean + + +$ git log --oneline # the commits are back now. +be1e4df (HEAD -> feature/lab2) wip(lab2): more progress +82133e5 wip(lab2): start +2184bc3 (origin/feature/lab1, feature/lab1) docs(lab1): complete task3 +36b4d4e docs(lab1): finish submission +4ad32ef docs(lab1): finishing task1 +428851b docs(lab1): start submission + +# Question: What would happen if `git gc` had run between the bad reset and your recovery? + +# Answer: `git gc` combines many individual objects into efficient packfiles, and deletes old objects that are no longer needed after a grace period +``` + +- Question: What would happen if `git gc` had run between the bad reset and your recovery? + +- Answer: `git gc` combines many individual objects into efficient packfiles, and deletes old objects that are no longer needed after a grace period. + If a normal `git gc` ran soon after the bad reset , nothing bad would happen. `git gc` might move objects from loose storage into packfiles, which does mean that the commit is gone. A normal `git gc` probably would not prevent recovery. But if Git pruned the unreachable commit after the reflog entry expired, or if someone forced pruning immediately, the commit could be permanently deleted from the local repository. + + +## Task 2 — Tag a Release & Rebase a Feature + +### 2.1: Annotated, signed release tag + +```bash +$ git tag -l --format='%(refname:short) %(objecttype) %(*objecttype)' +v0.0.1 tag commit +v0.1.0-lab2-sarhan tag commit + + +$ git tag -v "v0.1.0-lab2-${USER}" +object 0ed22bb7e6560b5a7e63903c355d5c41f36f4eb5 +type commit +tag v0.1.0-lab2-sarhan +tagger Ahmad Sarhan 1783965617 +0300 + +Lab 2 milestone — version control deep dive +Good "git" signature for ahmadhasansarhana@gmail.com with RSA key SHA256:E3jxNqQOmWqV0tyNbDOrEN0PDgkqcYP0I8qC0Lf7GLE +``` + +### 2.2: Rebase + force-with-lease + +```bash +## Before rebase +git log --oneline --graph --decorate --all +* be1e4df (feature/lab2) wip(lab2): more progress +* 82133e5 wip(lab2): start +| * 8de962e (upstream/main, upstream/HEAD) docs(lab11): fix nixpkgs pin vs go.mod collision; add network fallback pitfalls +| | * 5c30a49 (origin/main, origin/HEAD) Merge pull request #1 from VectorsMaster/feature/lab1 +| | |\ +| |_|/ +|/| | +* | | 2184bc3 (origin/feature/lab1, feature/lab1) docs(lab1): complete task3 +* | | 36b4d4e docs(lab1): finish submission +* | | 4ad32ef docs(lab1): finishing task1 +* | | 428851b docs(lab1): start submission +|/ / +| * 00c23c8 (HEAD -> main) docs: add PR template +|/ + + +## After rebase +git log --oneline --graph +* c595089 (HEAD -> feature/lab2, origin/feature/lab2) wip(lab2): more progress +* 9ce4378 wip(lab2): start +* 03004f7 (origin/main, origin/HEAD, main) docs: upstream moved while you worked +* c931ac4 docs(lab11): fix nixpkgs pin vs go.mod collision; add network fallback pitfalls +* 5c30a49 Merge pull request #1 from VectorsMaster/feature/lab1 +|\ +| * 2184bc3 (origin/feature/lab1, feature/lab1) docs(lab1): complete task3 +| * 36b4d4e docs(lab1): finish submission +| * 4ad32ef docs(lab1): finishing task1 +| * 428851b docs(lab1): start submission +* | 00c23c8 (backup-main) docs: add PR template +|/ +* bfa345b docs(lab3): matrix renames required checks — warn + ci-ok gate pattern; set honest cache expectations +* 356419b docs(lab1,lab2): clarify GitHub auth vs signing SSH key roles; add publickey-denied pitfalls +... +``` + + +### 2.3: Merge-versus-rebase reflection + +- I would use **merge** when I want to preserve the exact historical branching structure, especially on shared or public branches. +- I would use **rebase** to clean up private feature-branch history and place my commits on top of the latest base branch. +- I would avoid rebasing commits that other people may already depend on, because rebasing changes commit hashes. +- After rebasing a published personal feature branch, I would use `--force-with-lease`, not `--force`. \ No newline at end of file