Ответ 1
Файл также может быть указан в .git/info/exclude
, а также возможность просмотра core.excludesfile
.
У меня есть файл под названием "style.css", а git не обнаруживает его. Он не обнаруживает его, если я его удалю, но он обнаруживает, изменил ли я имя файла. Но мне нужно это с этим именем. Файл не находится в файле .gitignore. Это сводит меня с ума!
Я был бы признателен за помощь.
Файл также может быть указан в .git/info/exclude
, а также возможность просмотра core.excludesfile
.
Используйте команду git check-ignore
для отладки вашего файла gitignore (исключите файлы).
В примере:
$ git check-ignore -v config.php
.gitignore:2:src config.php
Выше приведены подробные сведения о соответствии шаблона (если есть) для каждого заданного имени пути (включая строку).
Так что, возможно, ваше расширение файла не игнорируется, а весь каталог.
Возвращенный формат:
<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
Или используйте следующую команду для печати вашего .gitignore
в папке пользователя и репо:
cat ~/.gitignore $(git rev-parse --show-toplevel)/.gitignore $(git rev-parse --show-toplevel)/.git/info/exclude
В качестве альтернативы используйте git add -f <path/file>
который позволяет добавлять игнорируемые файлы.
Смотрите: man gitignore
, man git-check-ignore
для более подробной информации.
Еще одно замечание, вероятно, редкий случай, но у меня была эта проблема. Я переместил некоторые файлы, которые уже привязаны к репо из одного каталога в другой, стиль copy/paste.
Наряду с этим появилась папка .git, которая не позволяла git обнаружить папку.
Итак, моя структура папок была такой: git не обнаружил папку 2, хотя репо было установлено для исходного проекта 1:
--Original Project 1
--.git
--Folder 1
--Folder 2
--.git
--Many other files/folders
Удаление дочерней папки .git решило мою проблему.
Помимо gitignore и других мест для проверки шаблонов игнорирования, проверьте, не было ли у вас git update-index --assume-unchanged
или git update-index --skip-worktree
. Если да, отключите их.
Убедитесь, что в репозитории или родительском файле не обнаружено какой-либо странности, в результате чего у него есть .git
.
Попробуйте сделать клон вашего репо и посмотрите, видите ли вы его в клонированном. Если да, попробуйте клонировать на другую машину/виртуальную машину и проверить. Это даст вам некоторое представление о том, что происходит не так.
У меня была та же проблема (components/dashboard/js-dev/training/index.js
по какой-то причине не отслеживался), поэтому я сделал следующее:
$ git check-ignore -v components/dashboard/js-dev/training/index.js
$ (gave me nothing)
$ git check-ignore -v components/dashboard/js-dev/training/
$ /Users/User/.config/git/ignore:23: components/dashboard/js-dev/training/
В любом случае, я обнаружил, что это довольно странно, поэтому я взглянул на этот файл /Users/User/.config/git/ignore
, и это было похоже:
(this is line 1)
# Automatically created by GitHub for Mac
# To make edits, delete these initial comments, or else your changes may be lost!
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
И получается, что строка 23 на самом деле находится между .com.apple.timemachine.donotpresent
и # Directories potentially created on remote AFP share
, другими словами, это была совершенно пустая строка!
Я попытался удалить все дополнительные строки, чтобы мой файл выглядел так:
# Automatically created by GitHub for Mac
# To make edits, delete these initial comments, or else your changes may be lost!
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
Я запускаю git status
, и я замечаю, что теперь он поднимает components/dashboard/js-dev/training/
. Я запускаю git add components/dashboard/js-dev/training/
, и все работает отлично снова.
Надеюсь, это поможет кому-то - этот вопрос заставил меня застрять в излишне длительное время.
У меня была аналогичная проблема и она была решена.
Я получал это сообщение об ошибке при запуске команды git add
:
The following paths are ignored by one of your .gitignore files:
<file>
Use -f if you really want to add them.
fatal: no files added
Поэтому я попытался заставить Git решить проблему для меня, добавив команду -f
в команду git add
. Это обычно заставляет Git настраивать файл .gitignore
, после чего вы сможете увидеть необходимые изменения или проблемные настройки.
В моем конкретном случае, казалось, возникла какая-то странная проблема с новой строкой в конце файла .gitignore
. Здесь как Git исправлена проблема:
-RemoteSystemsTempFiles
+RemoteSystemsTempFiles
\ No newline at end of file
Дополнительное примечание. Я столкнулся с этой проблемой и обнаружил, что изменения в файлах не добавляются к фиксации. Кажется, ничего не работало, за исключением щелчка правой кнопкой мыши по проекту и выполнения:
Командa > Дополнительно > Без предположений без изменений
Я также столкнулся с этой проблемой и, похоже, проблема с плагином EGit для Eclipse. Как и @user1655478, в предыдущем комментарии, выбрав проект в представлении проектов, щелкнув правой кнопкой мыши и выбрав "Командa > Дополнительно > Без предположений без изменений", исправлена проблема для меня.
Если ваш проект является проектом maven, проверьте, если вы изменили файл src или целевой файл. Это то, что я сделал недавно. С слишком длинной ссылкой на путь к файлу я не заметил "цель" в пути. Все хорошо после 1 часа агонии.
Я столкнулся с другой причиной этого. Вероятно, очень редкие обстоятельства.
Я скопировал весь свой репозиторий в другую папку, чтобы работать над ним. Изменения, внесенные мной в подмодуль, не были обнаружены с помощью git. Оказалось, что файл .git в папке подмодуля содержит абсолютную ссылку на исходную копию файла. Как только я исправил ссылку на файл, чтобы указать на мою рабочую копию, все было хорошо.
некоторые по каким-то причинам хотят добавить пустую папку. Если содержимое папки пустое, то для git нет причин упоминать об этом.
Соглашение гласит, что вы можете добавить в него файл .keep
. который может также любой другой файл.
это случилось со мной, когда я работал над веткой, которую я только что создал, под названием "я". Я попал на другую станцию разработки и не смог увидеть файл, который добавил в ветку. Чтобы увидеть файл, я запустил следующую команду
git checkout am
git branch --set-upstream-to=origin/am
git pull
после тяги все изменения сошли
сначала проверьте в своем git-репозитории, чтобы убедиться, что файла нет, иногда заглавные буквы могут испортить распознаваемый файл, но не будут распознаваться как изменение, особенно в расширении файла, таком как .JPG
(по какой-то причине это случилось со мной, хотя файл был сохранен так же, как и другие, расширение было написано с заглавной буквы только в одном и не появилось на сайте)
"если" - это проблема, проверьте "показать расширения имени файла" в соответствующей папке, переименуйте файл как-нибудь еще с расширением в нижнем регистре, добавьте git и подтвердите, а затем переименуйте его так, как это первоначально требовалось, но сохраняя расширение в нижнем регистре, поскольку очевидное изменение будет переписано и не проигнорировано
Выход из приложения GitHub работал для меня.
Симптомы: мой репозиторий находится в потоке файлов Google. Я мог видеть только измененные файлы при запуске git status
но приложение GitHub показало все изменения.