Така проблема часто виникає при спробі витягти з сховища, яке має дві назви файлів, які відрізняються лише у регістрі. Якщо ви перебуваєте на FAT, NTFS у режимі, нечутливому до регістру (по суті, будь-коли, коли він використовується під Windows), або HFS + у режимі, що не чує до регістру, і у вас є два файли "foobar" та "FOOBAR", тоді Git побачить два різних файли, але файлова система побачить лише один, що спричинить всілякі проблеми. Git здійснить оплату, скажімо, "FOOBAR", а потім перевірить "foobar", що, на думку файлової системи, просто замінює вміст "FOOBAR", але залишає його на місці. Тепер для Git, здається, "FOOBAR" замінено вмістом "foobar", а "foobar" зник.
Існує два різних прояви цієї основної проблеми. Перший - це коли ваш репозиторій насправді містить два файли, які відрізняються лише в регістрі. У цьому випадку вам потрібно працювати над файловою системою, що враховує регістр, або вам потрібно буде відредагувати сховище, щоб переконатися, що подібних зіткнень не відбувається; файлова система, що не враховує регістр, просто не може зберігати вміст цього сховища.
Інший випадок, який ви можете обійти, - це випадки, коли відбувається перейменування, яке змінює регістр файлу. Скажімо, наприклад, що репозиторій Git містить перейменування з "ПРИКЛАД" на "приклад". Перш ніж Git перевірить нову версію, він спробує перевірити, чи не перезаписує якийсь наявний файл, який є на вашому диску. Оскільки він вважає, що "приклад" - це нове ім'я файлу, він запитає у файлової системи, чи існує вона, і файлова система побачить "ПРИКЛАД" і скаже "так", тому Git відмовиться перевірити нову версію, оскільки вважає, що вона буде перезаписана файли без відстеження. У цьому випадку, якщо у вас немає місцевих змін, які вас турбують, простийgit reset --hard <revision-to-checkout>загалом буде достатньо, щоб ви пройшли проблему та переглянули нову версію. Просто спробуйте пам’ятати, що не слід перейменовувати файли на інші імена, що відрізняються лише у випадку, якщо ви перебуваєте у файловій системі, що не враховує регістр, оскільки це спричинить подібні проблеми.