1a73cb683a7d38d8b49338cb263d12d05e660c0c
1️⃣ Reproduce the situation
-
Initially, my repo had a file called readme.md.
-
I renamed it to README.md (only case change).
-
After running:
git status
Git showed no changes, meaning it did not detect the rename.
📸 – Git did not show any changes after renaming readme.md → README.md
2️⃣ Investigate why Git is not tracking the rename
- Git depends on the filesystem to detect changes.
- On Windows (NTFS, FAT), the filesystem is case-insensitive.
- That means readme.md and README.md are treated as the same file.
- Because Windows reports no difference, Git assumes nothing happened.
3️⃣ Correct steps to make Git recognize and commit the rename
To force Git to recognize the case-only rename:
git mv -f readme.md README.md
git commit -m "Rename readme.md to README.md"
4️⃣ Underlying reason
- Git itself is case-sensitive → it can distinguish between readme.md and README.md.
- Windows filesystems are case-insensitive → both names point to the same file.
- On Linux/macOS (case-sensitive), Git would automatically detect the rename.
- On Windows, we must explicitly force it with git mv -f.
✅ Conclusion: It’s due to the way Git (case-sensitive) interacts with Windows (case-insensitive) filesystems.
Description
Languages
Markdown
100%