How a Git Config Flag Sent Me Spiraling Into Apple’s APFS

srinath shrestha srinath shrestha

I was just learning Git, minding my own business like a regular kid with no social life.

I ran this:

bash
git config --list --local

Output:

bash
core.ignorecase=true

That tiny setting made me stop.
Why does Git even need to care about case?


Case Sensitivity 101

Turns out:

  • macOS (HFS+, APFS) → case-insensitive but case-preserving.
    You make File.txt, try file.txt again, and macOS says:

    “same thing bro, but I’ll remember your vibe.”

  • Linux → case-sensitive.
    It treats File.txt and file.txt as two completely different files.

So Git devs added core.ignorecase=true to avoid repos blowing up when you switch between macOS and Linux.


A Detour into Apple Filesystems

While digging, I discovered Apple’s old HFS+ (a relic from the late ’90s, duct-taped through decades).

Then in 2017, Apple dropped APFS (Apple File System) — designed specifically for SSDs.

And holy hell… it’s like someone finally wrote a filesystem in this century.

HFS+ vs APFS


What Blew My Mind About APFS

  • Space Sharing → One container, multiple volumes, no wasted space.
  • Copy-on-Write (CoW) → Only store differences, not full duplicates.
  • Snapshots → The system can freeze itself in time.
    (Suddenly, Time Machine made sense — it’s just rolling back to snapshots.)
  • Clones → Duplicate a file instantly, but it only takes space once changes happen.
  • Atomic Safe Save → A file either saves fully, or not at all. No cursed half-corruption.
  • Multi-Key Encryption → Different files, different keys → tighter security.

The Takeaway

I started off tinkering with Git configs.
Somehow ended up deep in filesystem design.

And for once… I have to admit: Apple actually cooked here.

My MacBook Pro M4 may have been overpriced,
but knowing about these tech stories like APFS makes it hurt less. :_)