~4 min read · Part 2 of 6 in Version Control for Accountants in the AI Era
PythonMuse LLC Series launch · 2026

Accountants hear the word “Git” and the brain immediately serves up:
git push --force.Take a breath.
Git is not software engineering.
Git is structured change tracking — and accountants invented structured change tracking. We just call it different things.
| Git Concept | What Accountants Already Call It |
|---|---|
| Repository | A workpaper folder |
| Commit | A journal entry |
| Commit message | The JE explanation / memo |
| Git log / history | The audit trail |
| Branch | A scenario / draft version of the budget |
| Main (or master) branch | The official ledger everyone trusts — the version that’s “live” |
| Merge | Posting the approved entry to the final ledger (the main branch) |
| Pull request | The review-and-approval workflow |
| Revert | A correcting entry, made as a new commit that preserves history — and like any other change, it typically goes through its own review and approval before it’s accepted |
| Tag | A closed reporting period |
.gitignore |
Files you intentionally leave out of the folder |
| Diff | The “track changes” view between two workpapers |
Read that table twice. Every Git concept is already part of how you work.
The only thing Git adds is consistency — it stops humans from forgetting to write the memo.
Three words worth knowing on their own — the accounting analogy gets looser here.
Main and merge already showed up in the table above with a fairly clean accounting parallel. Push and pull are looser — but the analogy still holds well enough to be useful, and the mechanics matter enough that they’re worth spelling out directly rather than only through analogy:
| Git Word | What It Actually Means | Closest Accounting Parallel |
|---|---|---|
main (or master) |
The official, current version everyone treats as live. | The final ledger, as above. |
| Push | Sending your committed changes up to the shared repository. | Submitting your completed workpaper for review. |
| Pull | Bringing someone else’s changes into yours, or into main. |
A reviewer incorporating an approved submission into the official file. |
A bit more on the mechanics: a push can be one commit at a time, or a batch of several commits sent up together once you’re ready. And pull is literally what happens when a reviewer accepts a pull request — they’re pulling your branch’s changes into main.
Here’s what that looks like when more than one person is working at once:

main runs down the middle as the official version. Two people can branch off it at the same time — Susan drafting a scenario, you drafting another — and neither blocks the other. When a branch is ready, its pull request asks the approver to pull those changes into main. The approver can see every branch waiting for review, and can merge each one independently as long as they don’t conflict with each other.
Compare that to editing the same file together in Excel Online or SharePoint: multiple people can edit at once, but there’s no automatic record of who changed what and why — only what someone happens to type into a comment or a version note. Article 20d covers that comparison in full.
Of course we do. Look at how we name files when we’re trying to be careful:
Recon_2026-04-30_v2.xlsxQ1_Tieout_FINAL_post_review.xlsxLease_Schedule_(after Susan's comments).xlsxVariance_Analysis - DO NOT EDIT.xlsxThat’s all version control. It’s just manual, fragile, and impossible to audit.
Git is what happens when you stop doing it by hand:
Here’s what a commit looks like conceptually (no terminal needed):
👤 Author: Svetlana Toohey
🕓 Date: 2026-04-30 16:12
📝 Message: "Updated depreciation formula to reflect ASC 842 transition adjustment"
📂 Files changed: depreciation_formula.py, journal_entries.csv
Now translate it into accounting language:
JE-2026-0412 — Posted by S. Toohey on 4/30/2026 at 4:12 PM. Updated depreciation per ASC 842 transition. Supporting workpapers: depreciation_schedule, JE detail.
Same shape. Same level of evidence. Same audit-friendly format.
The only difference: you didn’t have to remember to write it down.
📎 Why the example above uses
.py, not.xlsx.Git can technically track an Excel file or a PDF — it just can’t tell you what changed inside them. Those are binary formats, so Git only sees “this file is different now,” not a line-by-line diff.
That’s why this series is really about version-controlling the scripts and logic that produce the spreadsheet — not the spreadsheet itself. The
.xlsxyour CFO opens, or the PDF you send to the auditor, is an output. The formula, script, or query that built it is the thing you actually want a diff, a history, and a review trail for.
Same reminder as always → see the hub’s A Framework, Not a Tool. Every concept above (commit, branch, PR, tag) exists in GitHub, Azure DevOps Repos, and AWS CodeCommit with nearly identical names. Pick the one your company already pays for. We use GitHub in this series because the UI is the friendliest for non-engineers.
Most accountants who get scared off Git get scared by the terminal.
But here’s the truth: you can do 95% of what’s in this series without ever opening a command line. VS Code, GitHub Desktop, and the GitHub website have buttons for everything we’ll cover:
The terminal is optional. The mindset is not.
You now have the vocabulary. In Article 20c — How Finance Teams Should Structure AI Repositories, we turn that analogy into an actual folder structure your team can adopt next Monday.
→ Article 20c — How Finance Teams Should Structure AI Repositories
A note on how this article was made. This article started with me. The accounting/Git analogies came out of years of explaining to colleagues why “save-as-with-a-date” was almost-but-not-quite version control. GitHub Copilot (Claude Sonnet 5.5 and Opus 4.7) then built the final article and all visual concepts — working from my direction and feedback at each step. I reviewed every output, pushed back on things I didn’t like, and made all final content decisions. That process — bringing your own experience, using AI to build and iterate, and staying in the editorial seat throughout — is exactly what this series is about.
By Svetlana Toohey
© 2026 PythonMuse LLC. Content licensed under CC BY-NC-SA 4.0; code licensed under MIT.