Я добавляю новую папку (на самом деле я клонировал ее из другого репозитория и забыл об этом), затем я сделал некоторые изменения там. Кроме того, я сделал много изменений в других местах, когда я пытался сделать git add
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: protected/ext/SpecificFolder (modified content)
#
Потом я помню, что, возможно, там была папка .git (потому что раньше я делал там git clone). Я пошел в эту папку и удалил ненужные файлы (папки) и папку .git тоже. Я проверил статус мерзавца, ничего странного. Затем совершите коммит и извлеките его в другую ветку, и вдруг я понял, что эта папка не была добавлена в последний коммит. На самом деле папка была добавлена, но файлы внутри были проигнорированы. Теперь даже когда я пытаюсь сделать git add
для этой папки ничего не происходит и git status
не показываю никаких изменений :(
Что я могу сделать ?
.git
репозиторий, и файлы добавляются в этот репозиторий вместо репозитория в основной папке. Даже в графическом интерфейсе Git эта подпапка отображалась как файл, а не как папка.Ответы:
Git не отслеживает каталоги; но только файлы в них.
Похоже, у вас может быть шаблон игнорирования, который
add
ничего не делает. Вы можете увидеть проигнорированные файлы с помощьюgit status --ignored
; затем они могут быть отслежены сgit add --force protected/ext/SpecificFolder
источник
git status --ignored
, как-то я думаю, что это связано с подмодулемGit не отслеживает пустые каталоги. Если у вас есть проект с несколькими слоями подкаталогов, git действительно отслеживает каталоги с файлами в них. Если этого не произойдет, то это будет одно хранилище файлов.
источник
Мне удалось сделать именно то, что сделал этот пользователь: добавить существующее хранилище git внутри другого.
Симптом был в том, что git распознал этот каталог как файл и, следовательно, не смог добавить файлы каталога.
Чтобы решить этот вопрос, я удалил
.git
папку в папке, переместил ее в другой каталог, очистил индекс, удалил каталог в моем репо, а затем смог правильно добавить каталог.Мораль этого такова: не добавляйте хранилище внутри другого.
источник
git rm --cached path_to_submodule
Здесь есть лучший ответ: использование .gitkeep
TL; DR, добавить
.gitkeep
файл в пустой каталогисточник
Попробуйте добавить файл в этот каталог.
Если вы видите вывод, как показано ниже:
В одном из ваших gitignores есть правило, которое запрещает вам добавлять этот каталог.
источник
Я обнаружил похожие побочные эффекты после попытки конвертировать субмодуль в обычную подпапку.
Повторное добавление папки, которую я пытался преобразовать, похоже, работает, но оказывается, что файлы внутри нее фактически не были добавлены.
Попытка специально добавить файл в нем дал мне лучшее предупреждение
источник