Удалить файлы-призраки, которых нет в файловой системе, но которые остались в git после слияния? - PullRequest
0 голосов
/ 29 января 2020

Итак, я только что сделал слияние между двумя репозиториями. В одном из них файл назывался FOOBar, а в другом - FooBar. Слияние прошло хорошо, он правильно определил, что эти два файла были переименованы друг в друга, и, в конце концов, я сохранил все изменения, объединенные с FooBar, так как это соответствует соглашению об именах. После завершения и фиксации слияния выполнение «git status» показывает изменение, не подготовленное для коммита, указывающего на FOOBar. За исключением FOOBar больше не существует, только FooBar осталось.

Я пробовал "git add.", "git checkout -.", "git clean -f", "rm FOOBar" , "git восстановить." но после всего этого файлы по-прежнему отображаются как неотмеченные для фиксации и не существуют в файловой системе.

Что можно сделать, чтобы избавиться от этих файлов в git?

Ответы [ 2 ]

1 голос
/ 29 января 2020

Я думаю, что большинство команд git верхнего уровня работают с файлами, которые они находят на диске, и затем находят правильный файл в индексе для манипулирования. Поскольку файлы на вашем диске имеют неправильный регистр, это может привести к их отключению.

В любом случае, это всего лишь догадки.

Вот как избавиться от этого, вы должны манипулировать Индекс напрямую.

Следующая команда должна избавиться от файла:

git update-index --remove FOOBar
0 голосов
/ 29 января 2020

В дополнение к ответу Лассе вы можете запустить git clean -df, который очистит рабочее дерево от удаленных каталогов и файлов. Вот ссылка на документы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...