<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Git on Work You Can Explain</title>
		<link>https://workyoucanexplain.com/tags/git/</link>
		<description>Recent content in Git on Work You Can Explain</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
			<copyright>Copyright © Work You Can Explain</copyright>
		
		
			<lastBuildDate>Wed, 19 Aug 2026 00:00:00 -0500</lastBuildDate>
		
			<atom:link href="https://workyoucanexplain.com/tags/git/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Recovering Git History and Lost Code</title>
				<link>https://workyoucanexplain.com/posts/recovering-git-history-and-lost-code/</link>
				<pubDate>Wed, 19 Aug 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/recovering-git-history-and-lost-code/</guid>
				<description>&lt;p&gt;Git may be able to recover code that disappeared from your current branch, but recovery begins with inspection. A reflog records local movements of references such as &lt;code&gt;HEAD&lt;/code&gt;; it does not guarantee that every file or commit still exists, and it is not a substitute for a remote or tested backup.&lt;/p&gt;&#xA;&lt;p&gt;The safe pattern is: protect the repository, inspect history, create a recovery reference, compare the candidate, and restore only after verification.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Set Up Git, SSH, and Course Toolchains on Linux</title>
				<link>https://workyoucanexplain.com/posts/set-up-git-ssh-and-course-toolchains-on-linux/</link>
				<pubDate>Thu, 30 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/set-up-git-ssh-and-course-toolchains-on-linux/</guid>
				<description>&lt;p&gt;Set up only the environment one course requires. Record the supported Linux&#xA;distribution, exact tools and versions, repository host, authentication method,&#xA;project location, and verification command. Then install through the&#xA;distribution&amp;rsquo;s supported package path and prove the environment with a&#xA;disposable practice project.&lt;/p&gt;&#xA;&lt;p&gt;Do not install every language, copy a classmate&amp;rsquo;s dotfiles, or create an SSH key&#xA;before checking whether the course uses SSH at all.&lt;/p&gt;&#xA;&lt;h2 id=&#34;write-the-requirement-sheet&#34;&gt;Write the requirement sheet&lt;/h2&gt;&#xA;&lt;p&gt;Ask the syllabus, instructor, or official course environment:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Set Up Git, SSH, and Course Toolchains on macOS</title>
				<link>https://workyoucanexplain.com/posts/set-up-git-ssh-and-course-toolchains-on-macos/</link>
				<pubDate>Thu, 30 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/set-up-git-ssh-and-course-toolchains-on-macos/</guid>
				<description>&lt;p&gt;Build one course environment, not a collection of every developer tool you may&#xA;use in college. Start with current course instructions, verify the Apple&#xA;developer base, configure Git identity deliberately, add SSH only when the&#xA;remote service or course requires it, and isolate project dependencies through&#xA;the course&amp;rsquo;s documented method.&lt;/p&gt;&#xA;&lt;p&gt;Keep passwords, private SSH keys, access tokens, recovery codes, and private&#xA;repository addresses out of setup notes and screenshots.&lt;/p&gt;&#xA;&lt;p&gt;If Apple&amp;rsquo;s developer base has not been inspected, first &lt;a href=&#34;https://workyoucanexplain.com/posts/install-and-verify-xcode-command-line-tools/&#34;&gt;install or verify&#xA;Xcode Command Line&#xA;Tools&lt;/a&gt;. Do not let an&#xA;automatic developer-tools prompt become an unexplained side effect of the Git&#xA;setup.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Use Git Worktrees for Parallel AI Agents</title>
				<link>https://workyoucanexplain.com/posts/git-worktrees-for-parallel-ai-agents/</link>
				<pubDate>Sun, 26 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/git-worktrees-for-parallel-ai-agents/</guid>
				<description>&lt;p&gt;Use Git worktrees for parallel AI agents only when the tasks can be separated&#xA;clearly. Create one branch and linked working directory per task, assign&#xA;exclusive files or responsibilities, inspect each result independently, and&#xA;integrate one commit at a time.&lt;/p&gt;&#xA;&lt;p&gt;Worktrees reduce interference between working directories. They do not make&#xA;overlapping designs, stale assumptions, or conflicting recommendations safe.&lt;/p&gt;&#xA;&lt;h2 id=&#34;understand-what-a-worktree-isolates&#34;&gt;Understand what a worktree isolates&lt;/h2&gt;&#xA;&lt;p&gt;The official &lt;a href=&#34;https://git-scm.com/docs/git-worktree.html&#34;&gt;&lt;code&gt;git worktree&lt;/code&gt;&#xA;documentation&lt;/a&gt; states that one&#xA;repository can support multiple working trees and have more than one branch&#xA;checked out at a time.&lt;/p&gt;</description>
			</item>
			<item>
				<title>`git status` and `git diff`: Your Safety Instruments</title>
				<link>https://workyoucanexplain.com/posts/git-status-and-git-diff-your-safety-instruments/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/git-status-and-git-diff-your-safety-instruments/</guid>
				<description>&lt;p&gt;Run &lt;code&gt;git status&lt;/code&gt; and &lt;code&gt;git diff&lt;/code&gt; before committing, switching tasks, or accepting&#xA;an AI-generated edit. They answer different questions: status summarizes file&#xA;states; diff shows the content changes behind those states.&lt;/p&gt;&#xA;&lt;h2 id=&#34;read-status-as-an-inventory&#34;&gt;Read status as an inventory&lt;/h2&gt;&#xA;&lt;p&gt;The official &lt;a href=&#34;https://git-scm.com/docs/git-status&#34;&gt;&lt;code&gt;git status&lt;/code&gt; documentation&lt;/a&gt;&#xA;states that it reports differences between &lt;code&gt;HEAD&lt;/code&gt; and the index, between the&#xA;index and working tree, and untracked files not excluded by ignore rules.&lt;/p&gt;&#xA;&lt;p&gt;In practical terms:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;untracked&lt;/strong&gt; means the file is present but not in Git&amp;rsquo;s index;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;modified, not staged&lt;/strong&gt; means the working copy differs from the index;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;staged&lt;/strong&gt; means the index contains a change proposed for the next commit; and&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;clean&lt;/strong&gt; means Git sees no tracked or untracked change to report under the&#xA;current rules.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Clean does not mean correct, tested, backed up, or pushed.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Beginner’s First Programming Workflow</title>
				<link>https://workyoucanexplain.com/posts/a-beginners-first-programming-workflow/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/a-beginners-first-programming-workflow/</guid>
				<description>&lt;p&gt;Use one repeatable loop for beginner programming work: understand the task,&#xA;plan one small change, change the code, run it, test the expected behavior, and&#xA;create the checkpoint required by the project. A Git project can use a commit;&#xA;another course may require a working-log entry, saved version, or submission.&#xA;Each step produces evidence for the next.&lt;/p&gt;&#xA;&lt;p&gt;The loop prevents a vague assignment from becoming a large, unexplained edit.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-understand-the-task&#34;&gt;1. Understand the task&lt;/h2&gt;&#xA;&lt;p&gt;Before editing, state:&lt;/p&gt;</description>
			</item>
			<item>
				<title>GitHub Is More Than Online Storage</title>
				<link>https://workyoucanexplain.com/posts/github-is-more-than-online-storage/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/github-is-more-than-online-storage/</guid>
				<description>&lt;p&gt;GitHub can store a remote copy of a Git repository, but its larger role is&#xA;collaboration around that repository. It adds access controls, issues, pull&#xA;requests, review, automation, releases, and project presentation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;separate-git-from-github&#34;&gt;Separate Git from GitHub&lt;/h2&gt;&#xA;&lt;p&gt;Git records repository history locally. GitHub hosts repositories and services&#xA;around them. A remote is a named location used to exchange repository data; it&#xA;is not the only valid copy and does not replace a tested backup.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to Make a Useful Commit</title>
				<link>https://workyoucanexplain.com/posts/how-to-make-a-useful-commit/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/how-to-make-a-useful-commit/</guid>
				<description>&lt;p&gt;A useful commit is a small, understandable checkpoint. It contains one logical&#xA;change, excludes unrelated files and secrets, records a descriptive message, and&#xA;follows relevant verification.&lt;/p&gt;&#xA;&lt;h2 id=&#34;define-the-change-before-staging&#34;&gt;Define the change before staging&lt;/h2&gt;&#xA;&lt;p&gt;State the outcome in one sentence:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Add input validation for an empty student name.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;If the sentence requires “and” to join unrelated outcomes, consider separate&#xA;commits. A single logical change may touch code, tests, and documentation when&#xA;they jointly implement one outcome.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Source Files and Generated Files Are Not the Same</title>
				<link>https://workyoucanexplain.com/posts/source-files-and-generated-files-are-not-the-same/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/source-files-and-generated-files-are-not-the-same/</guid>
				<description>&lt;p&gt;A project folder can contain files that look equally important but have very&#xA;different roles. The Markdown document you edit is not the same kind of artifact&#xA;as the PDF exported from it. Raw measurements are not the same as a chart&#xA;generated from those measurements.&lt;/p&gt;&#xA;&lt;p&gt;The practical rule is simple: &lt;strong&gt;protect what you cannot reliably recreate, and&#xA;document how to recreate everything else.&lt;/strong&gt; This requires more judgment than&#xA;sorting files by extension.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Stop Naming Files “Final-Final-2”</title>
				<link>https://workyoucanexplain.com/posts/stop-naming-files-final-final-2/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/stop-naming-files-final-final-2/</guid>
				<description>&lt;p&gt;&lt;code&gt;essay-final-final-2.docx&lt;/code&gt; does not tell you which copy is editable, which one a&#xA;classmate reviewed, or which one you submitted. It records a sequence of&#xA;uncertain decisions in a place that should identify the file.&lt;/p&gt;&#xA;&lt;p&gt;Use a stable descriptive name. Add a sortable date or meaningful state only&#xA;when it answers a real retrieval question. Keep one clear editable source, and&#xA;use document version history or Git when the work needs actual change history.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sync, Git, and Backup Solve Different Problems</title>
				<link>https://workyoucanexplain.com/posts/sync-git-and-backup-solve-different-problems/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/sync-git-and-backup-solve-different-problems/</guid>
				<description>&lt;p&gt;Sync, Git, and backup can all create additional copies of data, but they solve&#xA;different problems. Sync keeps selected files available across locations. Git&#xA;records deliberate versions of a project. Backup preserves recoverable copies&#xA;for loss or damage. A reliable student system assigns each layer a specific job.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-one-extra-copy-is-not-enough&#34;&gt;Why one extra copy is not enough&lt;/h2&gt;&#xA;&lt;p&gt;Suppose a student keeps a programming project in a synchronized folder. The&#xA;folder appears on a laptop and in a cloud service. This helps when the student&#xA;moves between devices. It does not answer every recovery question:&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Small CLI Toolkit Worth Learning</title>
				<link>https://workyoucanexplain.com/posts/the-small-cli-toolkit-worth-learning/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/the-small-cli-toolkit-worth-learning/</guid>
				<description>&lt;p&gt;You do not need dozens of command-line tools. Recognize a small set, then learn&#xA;each one when a real course or project creates the need.&lt;/p&gt;&#xA;&lt;p&gt;Git, SSH, curl, ripgrep, &lt;code&gt;find&lt;/code&gt;, jq, and GitHub CLI cover seven useful roles:&#xA;version history, remote access, data transfer, content search, file search, JSON&#xA;processing, and GitHub workflows. They are a learning queue, not an installation&#xA;checklist.&lt;/p&gt;&#xA;&lt;h2 id=&#34;choose-a-problem-before-a-tool&#34;&gt;Choose a problem before a tool&lt;/h2&gt;&#xA;&lt;p&gt;For each proposed tool, answer:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Use Obsidian, Notion, Git, and Office Without Duplicating Everything</title>
				<link>https://workyoucanexplain.com/posts/use-obsidian-notion-git-and-office-without-duplicating-everything/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/use-obsidian-notion-git-and-office-without-duplicating-everything/</guid>
				<description>&lt;p&gt;Using several tools is not automatically a problem. Duplication becomes a&#xA;problem when two copies both appear authoritative. Assign each tool one clear&#xA;responsibility, keep one canonical source for each artifact, and use links or&#xA;short summaries across boundaries.&lt;/p&gt;&#xA;&lt;h2 id=&#34;divide-by-responsibility&#34;&gt;Divide by responsibility&lt;/h2&gt;&#xA;&lt;p&gt;A useful default is:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Tool&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Canonical responsibility&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Obsidian&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Personal concepts, learning notes, and private connections&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Notion&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Shared coordination, structured group state, and discussion&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Git&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Technical source, tests, configuration, and project documentation&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Office&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Required rich-format collaboration and deliverables&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;These are defaults, not ownership claims by a product. A course requirement,&#xA;institutional policy, accessibility need, or project constraint can change the&#xA;assignment.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What Git Is Actually Tracking</title>
				<link>https://workyoucanexplain.com/posts/what-git-is-actually-tracking/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/what-git-is-actually-tracking/</guid>
				<description>&lt;p&gt;Git is a version-control tool that records selected project snapshots locally.&#xA;It appears in this path because a course or project may use that history to&#xA;inspect and explain changes. Git does not watch every file on the computer or&#xA;save every keystroke. In one repository, Git compares the working tree, the&#xA;staging area, and committed snapshots. You decide which file content enters the&#xA;proposed next snapshot and when that snapshot becomes history.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Why Plain Text Works So Well with Git, CLI Tools, and AI</title>
				<link>https://workyoucanexplain.com/posts/why-plain-text-works-so-well-with-git-cli-tools-and-ai/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/why-plain-text-works-so-well-with-git-cli-tools-and-ai/</guid>
				<description>&lt;p&gt;Git, command-line tools, and AI systems perform different jobs, but plain text&#xA;gives them a common interface. Visible characters and lines can be searched,&#xA;compared, transformed, copied into a prompt, and reviewed after an edit.&lt;/p&gt;&#xA;&lt;p&gt;This is a practical advantage, not a claim that text is always best. Text works&#xA;well when the important information can be represented clearly without hiding&#xA;its structure inside one application.&lt;/p&gt;&#xA;&lt;h2 id=&#34;text-exposes-the-content&#34;&gt;Text exposes the content&lt;/h2&gt;&#xA;&lt;p&gt;In a Markdown file, the stored content is readable:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Your First Merge Conflict Should Be Deliberate</title>
				<link>https://workyoucanexplain.com/posts/your-first-merge-conflict-should-be-deliberate/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/your-first-merge-conflict-should-be-deliberate/</guid>
				<description>&lt;p&gt;A merge conflict is Git asking a person to decide how overlapping changes should&#xA;combine. Practice once in a disposable repository, with a clean working tree,&#xA;before deadlines or team work make the decision stressful.&lt;/p&gt;&#xA;&lt;h2 id=&#34;create-a-controlled-conflict&#34;&gt;Create a controlled conflict&lt;/h2&gt;&#xA;&lt;p&gt;Use a new practice repository with no important files. Commands assume a recent&#xA;Git installation and a default branch named &lt;code&gt;main&lt;/code&gt;; adjust the branch name only&#xA;if your repository uses another one.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
