Git переименовать каталог в другой регистр с тем же именем, содержащий файлы, которые были изменены всегда - PullRequest
1 голос
/ 16 августа 2010

После того, как каталог TestDirectory был переименован в нижний регистр (testdirectory), все его файлы (a.html и b.html) отображаются как измененные и даже git reset --hard не сбрасывает рабочее дерево.

Git всегда говорит:

#   modified:   TestDirectory/a.html
#   modified:   TestDirectory/b.html

Ничто не работает для сброса рабочего дерева в неизмененное состояние, ни одна из следующих команд не помогает:

git reset --hard

git checkout -- TestDirectory/a.html

Я не понимаю, почему это происходит и что я могу сделать. Это жуткая ошибка?

Переименование было добавлено не мной, а другим пользователем git.

git версия 1.6.4

Я использую Mac OS X 10.6

Ответы [ 2 ]

2 голосов
/ 16 августа 2010

После игры около часа я решил удалить testdirectory / a.html и testdirectory / b.html вручную - после этого git объявил их как «удаленные» (я не хочу их удалять на самом деле), но это дало мневозможность делать git pull и получать изменения, когда проблема была исправлена ​​другим пользователем.

Короткие шаги:

  1. Удалить файлы testdirectory / a.html и testdirectory / b.html
  2. git pull

Примечание: ранее нельзя было выполнить git pull из-за ошибки конфликта слияния.

Я не совсем понял, что произошло, но это помогло решить мою проблему.По моему мнению, Git все еще довольно сложен, как Perl, и команды в основном отражают внутреннюю часть git, а не намерения пользователя: -)

0 голосов
/ 16 августа 2010

Вы можете проверить, переписывает ли git окончания строк (git diff показывает, что файл заменен сам по себе, только с разными окончаниями строк).В этом случае вы должны взглянуть на Какова лучшая стратегия обработки CRLF (возврат каретки, перевод строки) с Git? .

...