У меня та же проблема, что и у ОП в этом посте, но я не понимаю ответ, помеченный как правильный (не вижу, чтобы он объяснял, как исправить ситуацию)
Я делаю это и получаю эту ошибку:
$ git update-index --assume-unchanged web.config
fatal: Unable to mark file web.config
Файл добавлен в хранилище
Это не в
.git/info/exclude
Это не в
.gitignore
(это было, но я вынул его, затем принудительно добавил web.configgit add -f web.config
, зафиксировал и отправил эти изменения в репозиторий)Когда я делаю Git ls-files -o, его там нет
Так что я могу сделать, чтобы исправить?
git ls-files -o
. Если так, то его нет в репо.Ответы:
У меня была та же проблема, что и у вас, и я выполнил те же четыре шага, которые вы указали выше, и получил те же результаты. Это включало тот факт, что мой файл был указан при выполнении
git ls-files -o
. Однако в моем случае я также попытался выполнитьgit update-index --assume-unchanged
файл, который не был указан при выполненииls-files -o
, и я все еще получил ту же ошибку "fatal: Unable to mark file
".Я подумал, что, возможно, это ошибка, и скачал последнюю версию git, но это не помогло.
Я наконец понял, что эта команда чувствительна к регистру! Это включает в себя полный путь и имя файла. После обновления пути к каталогу, чтобы полный путь был указан в правильном регистре, команда выполнена правильно.
Обратите внимание, что это было с Git для Windows, поэтому ваши результаты могут отличаться в зависимости от других платформ.
источник
У меня была такая же проблема на Mac. Чувствительность к регистру не была для меня проблемой - проблема была в том, что мне нужно было сначала сбросить свой мерзавец:
Проблема:
Решение:
источник
--skip-worktree
). Я избавился от локальных изменений, запустив,git restore .
но пропустить все равно дал ошибку. Наконец я попытался удалить файл. Шокирующе, мерзавец не сказал, что произошли изменения. Совершенно очевидно, что произошло нечто странное, так как git определенно отслеживал это, и я определенно удалил это, и это определенно не говорило, что это изменение.В моем случае дерево, которое я отмечал, было каталогом, а не файлом, как в вашем случае, и мне не хватало косой черты после его имени.
Неправильно -
Верный -
Обратите внимание на косую черту (/) в конце.
источник
Неустранимый: невозможно пометить файл Localization / el-GR.js
Что вы можете сделать, это:
$git update-index --assume-unchanged <file name>
Это помогло мне! :)
источник
$ git update-index --assume-unchanged ./.idea/vcs.xml fatal: Unable to mark file .idea/vcs.xml
$ cd .idea
git update-index --assume-unchanged .
Сработало, спасибо!Если в вашем пути есть пробелы, вы можете получить эту ошибку, даже если у вас есть правильная оболочка.
Это приводит к «фатальной» ошибке:
Чтобы исправить это, просто добавьте кавычки вокруг пути.
источник
Моя проблема заключалась в том, что я пробовал команду с подстановочным знаком *, предполагая, что она будет рекурсивной, но это не так.
Так что я сделал
проведение
работал для меня тогда и не привел к ОП и моей проблеме.
источник
У меня была эта проблема, когда я пытался распаковать файлы * .orig.
Вот что я сделал, чтобы отследить их:
если это не сработает:
источник
Убедитесь, что файл добавлен в git repo, если не добавляете файл в git repo, а затем попробуйте, он будет работать.
источник
--assume-unchanged
о медленных файловых системах, и пользователи обещают, что Git не нужно проверять этот файл, поскольку Git может предположить, что он не изменился. Но некоторые команды все же проверяют и выдают «сюрприз»!Не используйте на файлы, которые меняются.
Извините, что принес эти новости (у меня есть патч в процессе изменения этой документации).
источник
git rm --cached filename
файл будет удален, когда другие будут извлекать данныеВ моем случае я попытался использовать любой из вышеперечисленных методов, но безуспешно.
После многих попыток я просто подумал добавить свой файл для индексации.
Git отказался от этого действия, но посоветовал мне сделать это принудительно.
И это сработало для меня.
источник
Убедитесь, что у вас есть "web.config".
Если это не так, вы получите это сообщение об ошибке.
источник
Может кому пригодится. У меня была такая же проблема, и не было проблем с синтаксисом, без имени с пробелами, без проблем с путями и команда git reset не работала. Я делал коммит из папки внутри apache www, и служба apache была остановлена. Снова запущена служба apache, и ошибка исчезла
источник
Одна из распространенных ошибок при использовании этой команды - это попытка предположить, что файл либо не отслеживается, либо уже игнорируется git.
Сначала убедитесь, что файл отслеживается, запустив
Если он не показывает ваш файл, вам нужно сначала добавить его:
Если это показывает ваш файл или вы уже добавили этот файл в git, тогда вы сможете нормально запускать команды git accept:
или для папок
вы можете проверить, предполагается ли, что ваш файл игнорируется, запустив
Символ S представляет пропущенные файлы.
источник
Для всех будущих посетителей. Ничего из вышеперечисленного не решило мою проблему. Я понял, что
.gitignore
файл должен быть помещен в правильный каталог. В моем случае, когда я перешел.gitignore
в корневой каталог приложения, проблема была решена.источник
Убедитесь, что помечаемый файл существует и правильно написан, особенно путь к файлу и разделитель файлов. Разделители файлов в системе Windows и системе Linux разнесены.
источник
Я обнаружил, что иногда это не работает, потому что вы уже передали файл в свой .gitignore и сделали push или pull. Вам нужно только сделать push, и ваш файл должен игнорироваться при последующих фиксациях, даже если вы локально изменяете файл.
источник
У меня была такая же проблема с cygwin в Windows. Предоставление полного пути к файлу
источник