2016-09-23 5 views
3

У меня проблемы с командой git checkout. Пожалуйста помоги.git checkout error: невозможно создать каталог: Permission denied (Bitbucket)

Вот что я сделал.

  1. Создан локальный каталог. Создал несколько файлов. Инициировал git repo локально.
  2. создал репо в BitBucket & толкнул мой местный репозиторий для Bitbucket
  3. Создана новая ветвь локально, b01
  4. Добавлена ​​новых файлов в b01, совершенные им и успешно отодвинул ветку Bitbucket
  5. Теперь я пытаюсь объединить 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 -- . 

для восстановления файлов.

Пожалуйста, помогите.

+0

Вы запустили Git Bash с правами администратора? Это звучит так, будто у него нет прав на создание папок. Другие вещи могут быть побочным эффектом этого. –

+0

Я использую машину для Windows. Я администратор на машине. @TimBiegeleisen – Ritwik

+0

UPDATE: Я не знаю, что пошло не так, но я открыл второе окно git bash, и он работал во втором окне. Я ничего не изменил. Я все еще держу этот вопрос открытым, чтобы понять, может ли кто-нибудь понять, что я сделал, чтобы испортить вещи. – Ritwik

ответ

1

Во-первых, между каждой операцией с git я бы рекомендовал быстро сделать git status. Я не могу сказать, сколько раз это спасло мне много головных болей.

Несколько вещей, которые я мог бы попытаться пролить свет на эту проблему (ы):

  1. Вы сказали, что вы создали каталоги и сделали много изменений b01, затем толкнул его в начало координат. Посмотрите на фиксацию для этого действия `git show. Вы изменили разрешения на родительский каталог «workfolder»? This might be of help.

  2. Вы в окнах? Если да, то насколько глубоки в пути к каталогам? Является ли длина пути превышением окон max? Reference here.

  3. Если вы не пытаетесь создать откидную ветку b01 и слияние «мастера»? Иногда это выдает причину.

  4. Уродливый град-Мэри. Пробовали ли вы сделать копию/вставку «b01» за пределами репозитория, откидываясь назад к соответствующему последнему фиксатору «master», а затем вставляя изменения в «b01» копию над мастером? Когда вещи полностью перевернуты и не имеют смысла, иногда легче работать назад через проблему, чтобы выяснить, что пошло не так, и узнать, что не делать в будущем.

+0

1. Я на окнах, не изменен. (2) Длина пути в настоящее время составляет 97 символов с пробелами. Поэтому не должно быть проблемой (3) Как это сделать? Вы имеете в виду создать ветку b01a от ветки b01, а затем объединить b01a для управления вместо b01 для освоения? (4) Не пробовал это. Я считаю, что это ручной процесс, попробует только если ни один из них не работает. Любая идея, что я сделал неправильно, чтобы все испортить? – Ritwik

1

У меня была подобная ситуация. Хотя это было связано с тем, что решение было открыто в визуальной студии. Закрытие визуальной студии и выполнение сброса git-hard (только если вы не заботитесь о потере работы) поставили меня в хорошее место.

+0

У меня была как визуальная студия, так и открытый код. Один из них, должно быть, поддерживал файловую блокировку. Как только они были закрыты, «git checkout foo-branch» работал для меня. –

Смежные вопросы