2013-04-22 2 views
0

У меня очень странная проблема: git внезапно перестает быть в состоянии обнаружить, что я модифицировал файлы. Я могу зайти в папку репозитория, изменить гусеничный файл и git status будет сказать:Git не находит изменений в отслеживаемых файлах

# On branch master 
nothing to commit (working directory clean) 

Это особенно странно, потому что он вступил в силу постепенно. Первый git-gui перестал замечать изменения файла, но командная строка продолжала работать. Затем я перезапустил машину, и теперь ни gui, ни командная строка не могут обнаружить измененные файлы.

Мое лучшее предположение заключается в том, что с моим ПУТЕМ что-то не так. Это объясняет перезапуск машины, делающей ее хуже, и то, как командная строка могла продолжать работать дольше (она была запущена, когда PATH был прав). Коллеги иногда используют мою машину, поэтому они могут установить что-то, что изменило путь.

В случае, если это уместно, вот мой ПУТЬ:

echo $PATH 
/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin 
:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin 
:/usr/local/git/bin 

Машина в вопросе макинтош мини. Обратите внимание, что xcode все еще может обнаруживать изменения и выполнять коммиты. Но это пока доставит меня до тех пор, пока мне не понадобится определенная функция командной строки.

Я не уверен, как действовать дальше. Как мне диагностировать, что не так? Если проблема PATH, то что я могу изменить/удалить/добавить? Во-вторых, как мне понять, что сломало вещи в первую очередь?

+0

Только мое предположение, попробуйте 'git config --global core.trustctime false'. Если этот параметр является ложным, различия ctime между индексом и рабочим деревом игнорируются. – pktangyue

+0

@pktangyue Пробовал настройку core.trustctime на false. Не влияет на проблему. –

ответ

0

Оказывается, мой коллега сделал еще один клон хранилища. Я думал, что я изменяю файлы в исходном репо, когда я изменил их в xcode, но на самом деле я изменял их в клонированном репо.

git status работал в командной строке временно, потому что этот экземпляр командной строки остался моим коллегой и указал на правильный каталог. Терминал показывает только имя текущего каталога, и я не знал, что он был вложен в неправильный каталог. git-gui «сломался первым», потому что мой сотрудник не использовал git-gui, и поэтому не указал его на клон.

Итак, просто тупая ошибка с нашей стороны. git работал правильно.

+0

хорошо, что бывает ... но не следует использовать многопользовательский os;) –

Смежные вопросы