Почему Git не отслеживает изменения в подкаталоге? - PullRequest
9 голосов
/ 27 января 2012

Я создал git-репозиторий, добавил код и отправил его в GitHub.

Затем локально я отредактировал файл Eila.Analyser/Program.cs, который был добавлен в GitHub при первом коммите, сохранил его и git status говорит, что изменений нет.

Ладно, я думаю, что-то испортилось, git reset --hard HEAD, и, как я понимаю, все должно вернуться, но мой файл не восстановлен.

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

Я что-то упускаю здесь очевидное?

ОБНОВЛЕНИЕ: Доказательство того, что файл, который я редактирую, действительно был передан (git log --stat):

enter image description here

, если это поможет, древовидная картинка:

enter image description here

ОБНОВЛЕНИЕ2: Хорошо, я подумал, что действительно что-то испортил, поэтому я удалил папку, где было мое решение, снова клонирован из gitHub, и мой локальный код все еще отличается от существующего в gitHubи git status не видит изменений, git log origin/master..HEAD ничего не дает.

Ответы [ 7 ]

11 голосов
/ 27 января 2012

Попробуйте запустить git update-index --really-refresh.

У меня были подобные проблемы в Windows, и это решает проблему.

Вам также следует проверить параметр core.ignoreStat с помощью git config.

9 голосов
/ 30 января 2012

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

6 голосов
/ 26 июня 2017

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

3 голосов
/ 03 июля 2018

Для меня решение было

Переименование папки без отслеживания

0 голосов
/ 08 мая 2019

ПРОБЛЕМА (в моем случае)
Выполнение git checkout -b <branch_name> не имело никакого эффекта, и моя папка и файлы в этой ветви все еще не были видны локально, хотя они находятся на нашем сервере gitlab.

РЕШЕНИЕ
Скопировал SHA-хэш последнего коммита в этой ветке, затем локально:

git checkout -b <branch_name> #SHA Hash

Теперь я вижу ожидаемые подкаталоги и файлы.

0 голосов
/ 08 февраля 2019

Для меня проблема была в том, что в моем файле .gitignore было имя файла, которого не было. Удаление этого неверного имени файла из .gitignore решило проблему. Кроме того, я удалил все файлы .gitignore из подкаталогов и сохранил только файл верхнего уровня .gitignore.

0 голосов
/ 26 февраля 2015

У меня была такая же проблема.Решение Гедриуса также сработало для меня;Я удалил весь каталог и снова добавил его.Это решило проблему

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