<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://git.certuvia.com/</loc>
<lastmod>2026-11-08T16:22:53.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.1.1-introducing-yourself-to-git</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.1.2-your-first-repository</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.1.3-the-three-areas</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.1.4-making-your-first-commit</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.2.1-staging-what-you-mean-to</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.2.2-the-anatomy-of-a-good-commit-message</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.2.3-partial-staging-with-hunks</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.2.4-reading-history-like-a-detective</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.3.1-creating-your-first-branch</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.3.2-branches-are-just-pointers</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.3.3-switching-contexts-mid-work</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.3.4-branch-naming-as-communication</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.4.1-i-staged-the-wrong-file</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.4.2-i-committed-with-a-typo-in-the-message</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.4.3-i-messed-up-a-file-and-want-the-clean-version</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.4.4-i-don-t-want-this-commit-at-all</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.5.1-ssh-why-and-how</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.5.2-ignoring-what-doesn-t-belong</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.5.3-your-first-push</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/1.5.4-remote-vs-local-what-git-knows</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.1.1-cloning-and-understanding-what-you-got</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.1.2-fetch-vs-pull-the-critical-difference</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.1.3-checking-out-a-remote-branch-to-work-on-it</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.1.4-keeping-up-with-main</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.2.1-a-feature-branch-from-start-to-finish</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.2.2-short-lived-branches-as-a-discipline</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.2.3-managing-multiple-features-in-parallel</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.2.4-branch-cleanup-hygiene</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.3.1-fast-forward-when-it-s-trivially-easy</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.3.2-three-way-merge-when-branches-truly-diverge</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.3.3-squash-merge-a-clean-story</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.3.4-merge-strategies-in-practice</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.4.1-reading-the-conflict-markers</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.4.2-resolving-your-first-conflict</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.4.3-using-a-merge-tool</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.4.4-conflict-during-rebase</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.4.5-preventing-conflicts</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.5.1-opening-a-pr-that-deserves-to-be-merged</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.5.2-reviewing-code-in-a-pr</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.5.3-iterating-on-feedback</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.5.4-the-pr-lifecycle-in-a-protected-branch-workflow</loc>
<lastmod>2026-10-30T13:58:52.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.6.1-revert-the-safe-public-undo</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.6.2-reverting-a-merge-commit</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.6.3-force-push-when-it-s-allowed-and-when-it-s-not</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/2.6.4-the-oops-i-committed-to-main-recovery</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.1.1-squash-and-fixup-combining-related-commits</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.1.2-reordering-and-splitting-commits</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.1.3-editing-commit-messages-deeper-in-history</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.1.4-the-team-contract-when-not-to-rebase</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.1.5-rebase-onto-moving-a-branch-to-a-new-base</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.2.1-cherry-picking-a-fix-to-multiple-branches</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.2.2-cherry-picking-a-range</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.2.3-format-patch-sharing-changes-without-a-shared-remote</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.3.1-git-bisect-binary-search-for-bugs</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.3.2-automated-bisect</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.3.3-git-blame-who-wrote-this-and-why</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.3.4-git-log-as-a-search-engine</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.4.1-reflog-git-s-black-box-recorder</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.4.2-recovering-a-deleted-branch</loc>
<lastmod>2026-10-30T13:58:52.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.4.3-recovering-from-a-bad-reset-hard</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.4.4-the-detached-head-escape-plan</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.4.5-recovering-from-a-botched-rebase</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.5.1-tags-marking-what-matters</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.5.2-stash-as-a-workbench</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.5.3-submodules-composing-repositories</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.5.4-large-file-storage-lfs</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.6.1-commit-msg-hook-enforcing-message-format</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.6.2-pre-commit-hook-preventing-common-mistakes</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.6.3-gitattributes-line-endings-and-diff-drivers</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.6.4-git-aliases-for-daily-productivity</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
<url>
<loc>https://git.certuvia.com/lesson/3.6.5-ci-cd-integration-git-as-the-source-of-truth</loc>
<lastmod>2026-10-14T20:34:07.000Z</lastmod>
</url>
</urlset>
