6
votes

Finition de libération de flux git - autorisation refusée

Je travaille avec Git Flow a un moment et il est maintenant temps de terminer la première version V1.0.0. J'utilise Sourcetree sur Windows pour cela.

Quand je voulais terminer la version, j'ai eu cette erreur: xxx

Je ne sais pas pourquoi cette erreur se produit comme Il ne devrait pas y avoir de problèmes d'autorisation de fichiers que cela ne se soit jamais arrivé avant lors de la fonction de fonctionnalité.

Après l'échec ci-dessus, j'avais essentiellement toutes mes modifications de développer par rapport au maître de ma copie de travail. J'ai simplement pointillé toutes ces modifications et supprimé de nouveaux fichiers et ainsi de suite. Non, aucun conflit n'est présent. Je suis donc prêt à finir de finir ma libération.

Développer actuellement et la libération est sur la même étape et bien sûr beaucoup de commettre avant le maître:  mon référentiel actuel

Comment puis-je terminer ma version sans courir dans ce numéro?

existe-t-il un moyen de forcer le Développement actuel / Stage sur Master? Fondamentalement, tous les engagements de développement doivent être appliqués sur la branche principale - de sorte que tous les conflits de fusion lorsqu'ils apparaissent que j'aimerais résoudre la version de la branche de développement. Est-ce possible?


0 commentaires

3 Réponses :


0
votes

Comme illustré dans 107 , ce message d'erreur signifie que la fusion ne peut pas terminer car de conflit 'voir Libération de flux git # L225-L240 ): xxx

Cela signifie que vous devez résolvez les conflits de fusion et Complétez la fusion en premier .

le op hbit ajoute < BlockQuote>

Fondamentalement, tous les engagements de développement doivent être appliqués sur la branche principale - de sorte que tous les conflits de fusion lorsqu'ils apparaissent que j'aimerais résoudre la version de la branche de développement.

qui est typique d'un Développer rebasé sur maître :

  • Rebase signifie que vous rejouez la branche Développer en haut de Master , résolution de tout conflit dans le Développer Branche
  • Rebase signifie, une fois que la branche est en haut de maître (rebasé), une fusion à maître (fait par le Finition de libération de git-flux ) sera un trivial rapide.

1 commentaires

Comme vous pouvez le voir à partir de mon écran, tout de la fonctionnalité /... DIRECK COMMITS est entré dans un commit sur la branche Développement basée sur le maître code> branche. Je ne suis donc pas sûr de savoir si j'ai besoin d'une boîte de rebas - je voudrais en quelque sorte s'attendre à ce que je suis au stade où une finition de libération git-flux serait une fusion rapide. Pouvez-vous voir ce que je veux dire?



0
votes

Je suppose que cette erreur peut se produire non seulement si vous avez modifié les autorisations, mais également si vous avez modifié la propriété de ce fichier (pouvant conduire à des changements d'autorisation).

Je ne pouvais pas me débarrasser de ce problème moi-même, alors ce que j'ai fait (et que j'ai travaillé pour moi) était quelque chose comme "cacher le squelette dans le placard". Le but est d'isoler le fichier de buggy dans une branche de test que vous pouvez supprimer ensuite.

sudo rm badfile.xxx - Supprimer le fichier physiquement, assurez-vous d'avoir une copie pour l'ajouter ultérieurement

git add -all badfile.xxx - marquez-le comme supprimé dans la scène

Checkout git -b Quelqu'un_local_branch_we_ll_never_use - Créez une nouvelle branche avant de vous engager

GIT COMT -M "Supprimer le fichier incorrect" - COMMITE AVEC DELÉITION DE FICHIER DU NOUVEAU DANS LA NOUVELLE DIRECTION, DOIT ÊTRE CLEAN

git checkout my_good_old_branch - retour à vous une branche de travail et continuez avec votre vie ...

Vous pouvez ensuite supprimer votre branche de test:

branche git -d quelque_branch_we_ll_never_use

statut git


0 commentaires

4
votes

J'ai trouvé quelqu'un qui pourrait m'aider avec la question et il a eu l'idée qui est liée à un autre processus verrouillant le fichier.

Pour vérifier cela, j'ai copié mon référentiel ailleurs, l'a ouvert avec Sourcetree et j'ai pu faire la finition de libération sans problème.

Par conséquent, je suppose que cela est lié au fichier à verrouillé de quelque chose.

Bien que j'avais soupçonné mon IDE (PHPSTorm), je ne pouvais pas l'identifier comme je l'ai fermé, puis au problème de l'autorisation de fichier. Peut-être que c'est Dropbox (tout le référentiel est là), qui sait. Mais maintenant, je sais au moins un travail autour.


4 commentaires

Analyse intéressante. +1


Inspiré par OP, je redémarre mes fenêtres et ça marche. Un peu bizarre.


J'ai eu le même problème lorsque vous finissez un correctif. S'avère que l'IDE a effectivement verrouillé le fichier. Lorsque le fichier est enregistré, tout va bien, puis Sourcetree passe à Master et l'IDE remarque que le fichier change (à l'ancienne version en maître) et les verrous que je suppose. Donc, la fermeture de l'IDE pourrait également fonctionner pour certaines personnes.


Je peux confirmer dans mon cas, c'est que VSCODE a été ouvert avec le projet.