Подтвердить что ты не робот

Git не обнаруживает файл и не находится в .gitignore

У меня есть файл под названием "style.css", а git не обнаруживает его. Он не обнаруживает его, если я его удалю, но он обнаруживает, изменил ли я имя файла. Но мне нужно это с этим именем. Файл не находится в файле .gitignore. Это сводит меня с ума!

Я был бы признателен за помощь.

4b9b3361

Ответ 1

Файл также может быть указан в .git/info/exclude, а также возможность просмотра core.excludesfile.

Ответ 2

Используйте команду 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 для более подробной информации.

Ответ 3

Еще одно замечание, вероятно, редкий случай, но у меня была эта проблема. Я переместил некоторые файлы, которые уже привязаны к репо из одного каталога в другой, стиль copy/paste.

Наряду с этим появилась папка .git, которая не позволяла git обнаружить папку.

Итак, моя структура папок была такой: git не обнаружил папку 2, хотя репо было установлено для исходного проекта 1:

--Original Project 1
    --.git
    --Folder 1
    --Folder 2
         --.git
         --Many other files/folders

Удаление дочерней папки .git решило мою проблему.

Ответ 4

Помимо gitignore и других мест для проверки шаблонов игнорирования, проверьте, не было ли у вас git update-index --assume-unchanged или git update-index --skip-worktree. Если да, отключите их.

Убедитесь, что в репозитории или родительском файле не обнаружено какой-либо странности, в результате чего у него есть .git.

Попробуйте сделать клон вашего репо и посмотрите, видите ли вы его в клонированном. Если да, попробуйте клонировать на другую машину/виртуальную машину и проверить. Это даст вам некоторое представление о том, что происходит не так.

Ответ 5

У меня была та же проблема (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/, и все работает отлично снова.

Надеюсь, это поможет кому-то - этот вопрос заставил меня застрять в излишне длительное время.

Ответ 6

У меня была аналогичная проблема и она была решена.

Я получал это сообщение об ошибке при запуске команды 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

Ответ 7

Дополнительное примечание. Я столкнулся с этой проблемой и обнаружил, что изменения в файлах не добавляются к фиксации. Кажется, ничего не работало, за исключением щелчка правой кнопкой мыши по проекту и выполнения:

Командa > Дополнительно > Без предположений без изменений

Ответ 8

Я также столкнулся с этой проблемой и, похоже, проблема с плагином EGit для Eclipse. Как и @user1655478, в предыдущем комментарии, выбрав проект в представлении проектов, щелкнув правой кнопкой мыши и выбрав "Командa > Дополнительно > Без предположений без изменений", исправлена ​​проблема для меня.

Ответ 9

Если ваш проект является проектом maven, проверьте, если вы изменили файл src или целевой файл. Это то, что я сделал недавно. С слишком длинной ссылкой на путь к файлу я не заметил "цель" в пути. Все хорошо после 1 часа агонии.

Ответ 10

Я столкнулся с другой причиной этого. Вероятно, очень редкие обстоятельства.

Я скопировал весь свой репозиторий в другую папку, чтобы работать над ним. Изменения, внесенные мной в подмодуль, не были обнаружены с помощью git. Оказалось, что файл .git в папке подмодуля содержит абсолютную ссылку на исходную копию файла. Как только я исправил ссылку на файл, чтобы указать на мою рабочую копию, все было хорошо.

Ответ 11

некоторые по каким-то причинам хотят добавить пустую папку. Если содержимое папки пустое, то для git нет причин упоминать об этом.

Соглашение гласит, что вы можете добавить в него файл .keep. который может также любой другой файл.

смотрите здесь или здесь

Ответ 12

это случилось со мной, когда я работал над веткой, которую я только что создал, под названием "я". Я попал на другую станцию разработки и не смог увидеть файл, который добавил в ветку. Чтобы увидеть файл, я запустил следующую команду

git checkout am
git branch --set-upstream-to=origin/am
git pull

после тяги все изменения сошли

Ответ 13

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

(по какой-то причине это случилось со мной, хотя файл был сохранен так же, как и другие, расширение было написано с заглавной буквы только в одном и не появилось на сайте)

"если" - это проблема, проверьте "показать расширения имени файла" в соответствующей папке, переименуйте файл как-нибудь еще с расширением в нижнем регистре, добавьте git и подтвердите, а затем переименуйте его так, как это первоначально требовалось, но сохраняя расширение в нижнем регистре, поскольку очевидное изменение будет переписано и не проигнорировано

Ответ 14

Выход из приложения GitHub работал для меня.

Симптомы: мой репозиторий находится в потоке файлов Google. Я мог видеть только измененные файлы при запуске git status но приложение GitHub показало все изменения.