OK, after digging all day, here is the solution I found:
=========== Situation ===========
I am developing on my branch "Hotdog"
My employee pushed his work to our master branch, including a file called "Hamburgersrule"
I merge the master into my Hotdog branch.
My colleague changes “Hamburgersrule” to “HamburgersRule" and pushes him to mastery.
=========== Problem ===========
When I try to switch between Hotdog and Master, Git thinks that some changes have occurred. The HamburgersRule case is different from Git, but windows think it's just fine. Every time I try to merge or check another branch, Git warns me that I will lose my uninstalled files.
I can suppress the message by setting Git config core.ignorecase true, but the main problem still exists, and ignoring the differences between the cases is what led us to this mess in the first place.
=========== Solution ===========
1: Make a triple rename on the Wizard (to make sure the new file name is correct) HamburgersRule → HamburgersRule_Rename → HamburgersRule
2: Merge this change into the Hotdog branch. For the merge to work, you need to uninstall your version of "Hamburgersrule" (using your OS, not git)
3: Clean up the remaining files in Hotdog. Check if the merge works as expected. You may need to check the hamburgers in the Host section:
git checkout master HamburgersRule
EDIT: Important note. If you do not want to fix this problem again and again, make sure your colleagues have ignorecase set to false
git config core.ignorecase false
If someone ignores case sensitivity, their Git client ignores the changes and continues to check for the wrong name.