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" копию над мастером? Когда вещи полностью перевернуты и не имеют смысла, иногда легче работать назад через проблему, чтобы выяснить, что пошло не так, и узнать, что не делать в будущем.