Я знаю, что есть аналогичные проблемы с git, связанные с предупреждением «невозможно отсоединить», но я не смог их использовать.
Основное отличие в том, что это произошло, когда я никаким образом не имел дела с подмодулями (никогда раньше с ними не имел дела). Я создал ветку под названием «обновление», удалил старые файлы фреймворка и скопировал их в новые. Я использовал git add -A, затем все зафиксировал. Когда я попытался проверить магистральную ветку, она выдала следующие ошибки:
warning: unable to unlink requirements/views/sk/index.php: Permission denied
warning: unable to unlink requirements/views/sv/index.php: Permission denied
warning: unable to unlink requirements/views/zh/index.php: Permission denied
warning: unable to unlink requirements/views/zh_cn/index.php: Permission denied
warning: unable to unlink requirements/views/zh_tw/index.php: Permission denied
...и т.д. Их сотни.
Сначала я подумал, что это просто проблема с разрешениями, и поэтому я рекурсивно добавил разрешения на запись группы для всего каталога требований, но никаких изменений не произошло.
Изменить: как предлагается в ответе ниже, я попытался сделать то же самое, но со всем остальным закрытым. Мне повезло не больше, чем раньше.
Эта проблема особенно изнурительна, поскольку я не могу перейти в основной сервер, чтобы вернуться к нормальному развитию.
sudo chown -R username directory
Ответы:
Я обычно вижу такую ошибку, когда есть процесс, не освобождающий дескриптор этих файлов.
Убедитесь, что ничего не запущено, а затем попробуйте оформить заказ еще раз.
Примечание: это также может быть связано со способом установки Git (в Windows UAC может вызвать проблемы, если msysgit установлен в
C:\Program
илиC:\Program Files
, см. « Msysgit - sh.exe - fork: Permission denied - Vista 64 bit » и комментарий 2 к выпуск 437 )Примечание: как показано ниже , другой распространенной причиной проблемы является проблема с правами в каталоге (неправильный владелец), не обязательно в файле, связь с которым невозможно разорвать.
источник
git checkout -f master
Когда я впервые столкнулся с этой ошибкой, мой пользователь имел права «писать» в файл, но не в содержащий его каталог. Проверьте права доступа к каталогу, в котором находится файл.
источник
«Отменить связь» в данном случае означает «удалить файл».
Эта ошибка не вызвана самим git. Аналогичные ошибки могут возникнуть при удалении этих файлов вручную, в командной строке или в проводнике.
источник
У вас нет разрешения на доступ, возможно потому, что вы не являетесь владельцем.
Исправьте, изменив владельца на себя:
источник
У меня возникла проблема с файлом default-settings.php в drupal 7. В этом случае я не смог удалить его или вернуть обратно, как сказал @rtconner. У меня не было приложения или чего-либо, использующего этот файл, и это закончилось ошибкой разрешений.
Я добавил
chmod 777 *
в папку, а затем без проблем смог восстановить.источник
777
одна папка. Это решило мою проблему, но я быстро вернул ее к умолчанию после того, как она была решена. Спасибо!Для этого вы можете изменить права на запись.
Эта команда предоставит
'w'
разрешения всем папкам в текущем каталоге.источник
Я сталкивался с этой проблемой всякий раз, когда запускал «git repack» или «git gc» на своих машинах с OS X, даже когда запускал git с правами администратора, и, наконец, решил ее, наткнувшись на эту страницу: http://hints.macworld.com /comment.php?mode=view&cid=1734
Чтобы исправить это, откройте терминал, перейдите в репозиторий git, cd в папку .git, а затем выполните:
Если это была проблема, то после этого ваши команды git будут работать как обычно.
источник
Это также может произойти, когда:
Вы запустили процесс внутри контейнера Docker и:
Некоторые файлы были созданы этим процессом, и:
Место назначения файлов монтируется как том на хосте Docker и:
Вы работаете
git
на хосте Docker.Если это так, подготовьте файлы, которые хотите зафиксировать, и запустите:
Файлы, соответствующие указанным выше критериям, будут иметь префикс:
Они принадлежат
root
и не доступны для записи, что нехорошо. Чтобы исправить этот пробег:Более чистым решением, вероятно, было бы использовать эту
--user
опцию, см. Это для Docker и это для Docker compose .источник
Тем, кто использует Intellij , как сказал @rtconner, эта проблема не вызвана git. Поскольку ваша среда IDE заблокирована, файл (ы) git не может отсоединить его. Итак, вам нужно закрыть свою IDE, а затем попытаться объединить (или что вам нравится) через командную строку.
источник
В моем случае это был символ «:» в имени папки, препятствовавший проверке репозитория git в Windows.
источник
на терминале на Mac я просто делаю это
а потом
источник
У меня была эта ошибка внутри виртуальной машины (под управлением Ubuntu), когда я пытался это сделать
git reset --hard
.Исправление заключалось в простом запуске
git reset --hard
с хост-машины OS X.источник
Ни одно из других предложений не помогло мне, но это сработало:
sudo git reflog expire --expire=now --all && sudo git gc --prune=now --aggressive
источник
В моем случае мой каталог Windows находится в папке Dropbox. Это не проблема, связанная с Git. Когда файл (в данном случае файл блокировки) только что был создан, Dropbox потребуется еще секунда для выполнения синхронизации. В это время файл используется Dropbox, и никакая сторонняя программа (в данном случае Git) не может удалить файл.
Мое решение - выйти из Dropbox и, следовательно, избежать закулисной магии синхронизации файлов Dropbox.
источник
Я сталкивался с этой ошибкой , и это вызвано неправильным «владелец / группами» из файла / папки . Вы должны обратиться за помощью к администратору вашего сервера, чтобы изменить «владельца / группу» этого файла / папки и повторить попытку, используя «git pull» еще раз. Или, если вы sudoer, просто sudo chown «ваше имя владельца / имя вашей группы» и попробуйте еще раз получить свой репозиторий. Попробуйте, у меня работает на 100%!
источник
Убедитесь, что все связанные процессы или потоки не запущены, и при необходимости выполните конечную задачу или принудительно завершите работу.
Убедитесь, что вы изменили право собственности.
источник
В общем, если это происходит в Windows , и вы используете tortoisegit , это кеш состояния tortoisegit . Убейте этот процесс, и он будет освобожден.
источник
git status
вместо этого из командной строки.Мне просто нужно было переключить пользователя с ubuntu на мое настоящее имя пользователя, под которым я сначала делал что-то. Это исправило это.
источник
Решено для меня, установив мой клиент git (GitExtensions), чтобы он всегда работал в режиме администратора.
источник
У меня была эта проблема при использовании
IntelliJ
(14.1.3 Ultimate), я хотел отменить изменения в каком-то файле.Решено закрытием
Git Bash
открытого в другом окне - еще одна попытка откатаIntelliJ
сработала.источник
Я столкнулся с этой ошибкой, и я думаю, что проблема заключалась в том, что я «запускал от имени администратора», когда я запускал Eclipse и создавал файлы, поэтому они принадлежали администратору (это было замечено запуском ls -la в папке). Когда позже я попытался спрятать файлы, это не позволило мне («невозможно отключить файлы» и все такое). Для меня исправление было исправлением chmod для файлов.
источник
git gc работал у меня (в новой вкладке). Получал это с каждой перезагрузкой. Спасибо http://www.saintsatplay.com/blog/2016/02/dealing-with-git-unlink-file-errors#.W4WWNZMzZZJ
источник
Все, что вам нужно сделать, это предоставить разрешения, выполнить команду ниже из корня вашего проекта:
источник
У меня была такая же проблема, я пробовал несколько альтернатив, как предлагали другие.
Но, наконец, предоставление правильного разрешения для папки .git решает проблемы.
источник
В моем случае проблема с разрешением решена установкой
www-data
в качестве владельца:источник
Думаю, дело в разрешении вашего файла:
источник