web-dev-qa-db-fra.com

erreur git checkout: impossible de créer un répertoire: autorisation refusée (Bitbucket)

Je suis confronté à des problèmes avec la commande git checkout. S'il vous plaît aider.

Voici ce que j'ai fait.

  1. Créé un répertoire local. Créé des fichiers. Initié un repo git localement.
  2. Création d'un référentiel dans bitbucket & poussé mon référentiel local vers bitbucket
  3. Création locale d'une nouvelle branche, b01
  4. Ajout de nouveaux fichiers à b01, validation de ceux-ci et transfert réussi de la branche vers bitbucket
  5. Maintenant, j'essaie de fusionner b01 avec master et c'est là que je suis confronté à des problèmes. Je ne suis pas capable de commander le maître.

Liste des commandes utilisées et détails de l'erreur:

git clone [my repo]
git checkout -b b01

Par la suite, j'ai apporté plusieurs modifications, notamment la création de nouveaux fichiers et répertoires, les ai validées et correctement transférées vers le référentiel. comme:

git Push -u Origin b01

Maintenant, j'ai terminé les modifications et je souhaite les fusionner avec la branche principale. Alors je fais un:

git checkout master

Voici l'erreur qu'elle jette:

fatal: cannot create directory at 'workfolder': Permission denied

Git me garde en b01, mais supprime TOUS les fichiers que j'avais créés dans la branche. Donc, si je fais maintenant une 

git status

ça me montre: 

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>

Je dois courir un 

git checkout -- . 

pour restaurer les fichiers.

S'il vous plaît aider. 

8
TechiRik

J'ai eu une situation similaire. Bien que ce soit à cause de ma solution ouverte dans Visual Studio. Fermer Visual Studio et faire une réinitialisation git - dure (seulement si vous ne craignez pas de perdre du travail) me placent dans une bonne position.

C'est à dire. vérifiez si des processus bloquent le dossier/les fichiers.

12
gzimmers

Premièrement, entre chaque opération avec git, je vous recommande de faire un git status rapide. Je ne peux pas vous dire combien de fois cela m'a sauvé beaucoup de maux de tête.

Quelques choses que je pourrais essayer d’éclairer sur le (s) problème (s):

  1. Vous avez dit que vous avez créé des répertoires et apporté de nombreuses modifications à b01, puis que vous les avez transférées à l'origine. Regardez le commit pour cette action `git show. Avez-vous modifié les autorisations sur le répertoire parent du "dossier de travail"? Cela pourrait être utile .

  2. Êtes-vous sur Windows? Si vous êtes, quelle est votre profondeur dans les chemins de répertoire? La longueur du chemin dépasse-t-elle windows max? Référence ici .

  3. Si aucune de ces solutions ne fonctionne, avez-vous essayé de créer une branche jetable à partir de b01 et de fusionner le "maître"? Cela fume parfois une cause.

  4. La vilaine grêle, Marie. Avez-vous essayé de faire un copier/coller de "b01" en dehors du référentiel, en revenant au dernier commit correspondant de "master", puis en collant les modifications dans la copie "b01" sur le master? Lorsque les choses sont totalement à l’envers et n’ont pas de sens, il est parfois plus facile de remonter le problème en arrière pour déterminer ce qui a mal tourné et savoir ce qu’il ne faut pas faire à l'avenir.

1
Benjamin Dean