Git checkout error: не могу создать каталог: в доступе отказано
У меня проблемы с командой git checkout. Пожалуйста, помогите.
Вот что я сделал.
- Создан локальный каталог. Создал несколько файлов. Инициировал репозиторий git локально.
- Создал репо в битбакете и нажал мое местное репо на битбакет
- Создал новую ветвь локально, b01
- Добавлены новые файлы на b01, они были переданы и успешно нажали ветку на битбакет
- Теперь я пытаюсь объединить b01 с мастером, и именно там я сталкиваюсь с проблемами. Я не могу проверить владельца.
Списки используемых команд и сведения об ошибке:
git clone [my repo]
git checkout -b b01
В дальнейшем я сделал несколько изменений, включая создание новых файлов и каталогов, исправил эти изменения и успешно нажал изменения в этой ветке на репо. как:
git push -u origin b01
Теперь я закончил с изменениями и хочу объединить его с главной ветвью. Поэтому я делаю:
git checkout master
Вот ошибка, которую он выдает:
fatal: cannot create directory at 'workfolder': Permission denied
Git хранит меня в b01, но удаляет ВСЕ файлы, которые я создал в ветке.
Поэтому, если я сейчас сделаю
git status
он показывает мне:
On branch b01
Your branch is upto date with 'orgin/b01'
Changes not staged for commit:
(use "git add/rm .....)
deleted: new file1
deleted: new file2
<list of the new files I had added but which got deleted as a result of the command>
Мне нужно запустить
git checkout -- .
чтобы восстановить файлы.
Пожалуйста, помогите.
Ответы
Ответ 1
У меня была аналогичная ситуация. Хотя это было связано с тем, что решение было открыто в визуальной студии. Закрытие визуальной студии и выполнение git reset - hard (только если вы не обеспокоены потерей работы) поставили меня в хорошее место.
т.е. проверьте, заблокированы ли какие-либо процессы в папке/файлах.
Ответ 2
Как уже было сказано, это может произойти, когда другой процесс уже обращается к файлам, поэтому закрытие любого приложения, которое потенциально может его использовать, поможет, так как для меня был открыт Visual Code, а закрытие действительно помогло.
Ответ 3
Во-первых, между каждой операцией с git я бы рекомендовал сделать быстрый git status
. Я не могу сказать, сколько раз это спасло мне много головных болей.
Несколько вещей, которые я мог бы попытаться пролить свет на проблему (ы):
-
Вы сказали, что создали каталоги и сделали много изменений в b01, а затем подтолкнули его к началу. Посмотрите на фиксацию для этого действия ` git show. Вы изменили разрешения на родительский каталог "workfolder"? Это может быть полезно.
-
Вы на окнах? Если да, то насколько глубоки в пути к каталогам? Является ли длина пути превышением окон max? Ссылка здесь.
-
Если никто из них не работает, попробовали ли вы создать откидную ветку b01 и слияние "master"? Это иногда выдает причину.
-
Уродливый град - Мэри. Пробовали ли вы сделать копию/вставку "b01" за пределами репозитория, откидываясь назад к соответствующему последнему фиксатору "master", а затем вставляя изменения в "b01" копию над мастером? Когда вещи полностью перевернуты и не имеют смысла, иногда легче работать назад через проблему, чтобы выяснить, что пошло не так, и узнать, что не делать в будущем.
Ответ 4
Блокировка файла вызывает эту проблему. это может быть любой инструмент разработки, такой как visual studio или matlab.
Следуйте этому, чтобы выяснить причину. Вам просто нужно снять блокировку https://helpcenter.gsx.com/hc/en-us/articles/115015880627-How-to-Identify-which-Windows-Process-is-Locking-a-File-or-Folder