Files
git-practice-Ajin/readme.md
2025-09-04 05:49:04 +00:00

35 lines
1.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 readme](git_readme.png) 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:
Its due to the way Git (case-sensitive) interacts with Windows (case-insensitive) filesystems.