Что-то не так происходит с одним из файлов в моем локальном хранилище git. Когда я пытаюсь изменить ветку, он говорит:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Что бы это могло значить?
Что-то не так происходит с одним из файлов в моем локальном хранилище git. Когда я пытаюсь изменить ветку, он говорит:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Что бы это могло значить?
Ответы:
Это может означать, что другая программа использует файл, что не позволяет git «перемещать» файл в или из рабочего каталога, когда вы пытаетесь изменить ветви.
У меня такое было в Windows Vista, где eclipse - программа, использующая файл. Файл не может быть фактически открыт в Eclipse, но, возможно, был открыт процессом, запущенным Eclipse.
В этом случае попробуйте закрыть файл в любых приложениях, которые могли его использовать. Если это не сработает, полностью закройте все приложения, которые могли открыть файл.
GitKraken
вы можете получить это, если вы выполняете команды, такие как
У меня была эта проблема, и я решил ее с помощью команды: git gc
вышеупомянутая команда удаляет временные и ненужные файлы. (Уборщик мусора.)
git pull
инициируется git gc
автоматически, и gc пытается получить доступ к некоторым файлам .pack и .inx. Они удерживались процессом "windows git", который принадлежал git pull
команде. Запуск git gc
вручную, а затем - git pull
действительно решает проблему.
git gc
я снова получал ту же ошибку, когда gc
был в процессе
отсюда сработало это решение :
Это специфический для Windows ответ, поэтому я знаю, что он не имеет отношения к вам ... Я просто включил его для будущих пользователей.
В моем случае это было потому, что я запускал Git из командной строки без повышенных прав. «Запуск от имени администратора» исправил это для меня.
Ctrl+C
чтобы завершить очень длинный список несвязываемых файлов; вышел из gitbash, моей IDE и приложения GitHub для Windows; перезапустил gitbash в режиме повышенных прав «Запуск от имени администратора»; и побежал git gc --aggressive
. Потребовалось время, чтобы завершить, но сделал это без ошибок.
Я столкнулся с этой проблемой при выполнении git pull
.
Я попытался, git gc
и это решило мою проблему.
В моем случае нет процессов, затрагивающих файл или каталог. Может быть, это происходит, если путь очень длинный, потому что ограничение операционной системы (Windows). Попробуйте включить флаг поддержки longpath в глобальной конфигурации git, как показано ниже:
git config --global core.longpaths true
или попробуйте установить флаг ответа да / нет, если он не противоречит вам
set GIT_ASK_YESNO=false
Если путь слишком длинный, я не нашел успешного решения.
GIT_ASK_YESNO
, не могу найти информацию об этом. Откуда это взялось ?
core.longpaths
с дополнительным: reset --hard prune gc работал для меня - но пришлось закрыть AndroidStudio, чтобы не испортить его встроенные инструменты
Я попытался, git gc
и это решило мою проблему.
Это может быть полезно для кого-то; Если все вышеперечисленное не работает для вас, выполните следующие действия:
Закройте вашу IDE (моя была Eclipse, не уверена, применима ли она к Intellij и другим) или любое другое приложение, которое может использовать git.
Откройте git из командной строки (в моем случае у меня был git bash) и запустите, git gc
как уже упоминалось другими.
Это сделало магию для меня.
Поскольку я использую gitkraken и командную строку, я столкнулся с той же проблемой. И тогда я запускаю git gc
команду, это решило мою проблему. Поэтому я счастлив и хочу поделиться некоторыми моментами, которые могут оказаться полезными.
Что git gc
будет делать?
git gc
удаление недоступных объектов, которые могли быть созданы из предыдущих вызовов git add.
Когда бежать git gc
?
Начиная с документа , пользователям рекомендуется выполнять эту задачу на регулярной основе в каждом хранилище, чтобы поддерживать хорошее использование дискового пространства и хорошую производительность.
Как сделать это автоматически настраиваемым?
Некоторые команды git могут автоматически запускать git gc; см. флаг --auto ниже для деталей. Если вы знаете, что делаете, и все, что вам нужно, это навсегда отключить это поведение без дальнейших рассуждений, просто сделайте
git config --global gc.auto 0
У меня была такая проблема на Windows 7, и она оказалась из-за какого-то осиротевшего git.exe
процесса.
Чтобы решить эту проблему, откройте диспетчер задач и убейте все git.exe
процессы.
Поскольку git
команды недолговечны, обычно вы не должны видеть их git.exe
в диспетчере задач. Когда они есть, это обычно означает, что что-то не так, и вы должны убить эти процессы.
В Windows 8: я запустил git gc, и там было сказано, что git gc уже запущен, я запустил git gc --force и запустился сборщик мусора.
Затем я мог бы переключаться между ветками и сливаться без проблем, попробуйте git gc --force.
Возможно, процесс gc не остановился изящно по той или иной причине.
У меня была эта проблема с .tmp
файлами в /.git/objects/pack
папке. Я думаю, что-то не получилось во время push или pull, поэтому я удалил эти временные файлы и сбросил HEAD до последнего коммита. Не уверен, если это рекомендуется, но это сработало для меня. Также git count-objects -v
дал мне список .tmp
файлов, которые не принадлежат в папке пакета.
Или подавить сообщения y / n в windows git open cmd.exe
и запустить:
SETX GIT_ASK_YESNO false
видел здесь: https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
помогает в определении оставшихся объектов температурных в pack
папке.
Я смог решить эту проблему, открыв Powershell в качестве администратора и оттуда
git checkout <branch_name>
Я столкнулся с той же проблемой, когда делал git pull. Я попробовал ручную служебную команду git 'git gc', и это решило мою проблему.
После запуска команды
git rm -rf foo.bar
Я вижу ошибку
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Потому что другая программа использует этот файл . Например, когда я запускаю веб-приложение Java в модели отладки или запускаю веб-приложение на сервере, я не могу удалить файл журнала. Выключите сервер приложений (или отключите процесс отладки), повторите попытку
git rm -rf foo.bar
Я вижу, что файл был удален.
После того, как ни один из приведенных выше ответов, похоже, git fetch -p
не сработал, бег сделал эту работу за меня.
Я столкнулся с этой проблемой в Windows, вы можете запустить git bash от имени администратора и затем выполнить команды желания, которые решили эту проблему для меня.
Я попробовал каждый совет на этой странице, и ничего не помогло. Я делал git fetch
и git reset --hard origin/development
дал мне ошибку unkink. Я не мог сбросить до последнего коммита.
Что помогло, так это проверить другую ветку, а затем проверить предыдущую. Очень странно, но это решило проблему.
Если вы используете Docker и работаете под управлением Windows 10, вы можете остановить контейнеры, в которых может быть запущен файл. Чтобы показать статусы ваших контейнеров, запустите
docker ps -a
Чтобы остановить их, просто бегите
docker stop <container name or container id>
Это сработало для меня, так как я запускаю свои локальные файлы, используя файл .sh
В Windows видел эту ошибку на git clone
(довольно большом) репо. Закрытая SmartGit и замолчала мое программное обеспечение резервного копирования (CrashPlan), и после этого она работала. Не уверен, какой из 2 сделал трюк, но если работает, то это может сделать это и для вас.
У меня была та же проблема при выполнении git pull, и, как указано выше, это было из-за программы, которая содержала эти файлы и не позволяла git pull. Закрытие программы помогло. Обычно среда IDE (например, Eclipse), из которой проверяются файлы, будет держать ее в фоновом режиме. Закрытие того же самого и повторное выполнение git pull решило проблему для меня.
У меня была та же самая ошибка, и закрытие приложения, у которого был открытый файл, решило это. Я смог вернуться и нажать «Y»