When rewriting Git commit history in a monorepo setup, case-sensitive rename operations can cause history divergence if `core.ignoreCase` is set to `true`. On case-insensitive filesystems (macOS APFS, Windows NTFS), Git may treat a case-sensitive rename as a deletion, causing the rewritten history to differ from the original. The fix is to set `core.ignoreCase=false` before running history-rewriting operations like `git-filter-repo`, then redo the operation. Fresh clones on case-insensitive filesystems will automatically reset this setting, so it must be explicitly configured each time.
Table of contents
Short SummaryProblem BackgroundThe Difference in Commit HistoryThe SolutionReferences26 Impressions