Utiliser Git version 2.2.0 avec le moteur de jeu Unity sur OS X et vouloir valider mon code. J'ai tout ajouté et je n'ai pas reçu de message d'erreur. puis commettez -m et obtenez le message d'erreur suivant:
fatal: multiple stage entries for merged file 'Assets/Prefabs/Resources'
Ne le remarquant pas, j'ai poussé, cela n'a pas donné de message d'erreur, en fait, j'ai dit Everything up-to-date
Alors j'ai vérifié bitbucket (où le repo est tenu) et il n'affichait pas mon commit. donc j'ai vérifié mon journal local et cela n'affiche pas non plus mon commit.
J'ai cherché sur Google une réponse ... et rien. Quelle est cette erreur? et comment puis-je le réparer?
La première solution de contournement, qui semble fonctionner avec les versions récentes de Git (2.3+, Q2 + 2015), est mentionnée dans grant 's , réponse plus à jour :
Supprimer l'index
$ rm .git/index
Tout ajouter
$ git add -A
Commettre
$ git commit -a
Réponse originale (fin 2014)
La solution habituelle consiste à:
ajoutez les changements du premier repo au second:
$ cd /patH/to/second/cloned/repo
$ git --work-tree=/path/to/first/repo add .
Vous pouvez voir ce message d'erreur dans read-cache.c
, décrit dans ce correctif (" read-cache.c
: assurez-vous que les entrées non fusionnées sont supprimées ") et introduites dans le Git 2.2 commit .
Comme il est si récent, il est possible que downgrading Git to 2.1 soit suffisant pour ne pas être affecté par ce correctif.
Le OP Daniel Toebe ajoute dans les commentaires :
Le problème est survenu sur mon macbook, qui a décidé d’échouer, et un autre incident informatique m’a retardée dans mes projets.
Je pense avoir rencontré ce problème car j'ai ajouté et validé des modifications, puis supprimé un fichier que je venais de valider. Si cela semble similaire à votre cas, je vous recommande de suivre la procédure ci-dessous pour enregistrer le ré-clonage et l'ajouter manuellement dans vos modifications.
J'ai pu résoudre ce problème en supprimant le fichier .git/index dans mon référentiel, comme l'a suggéré @slider (je crois qu'il a mal entré le chemin).
rm .git/index
Ensuite, j'ai dû ajouter et valider à nouveau mes modifications locales
git add -A
git commit -m "..."
Je pouvais alors pousser à distance.
Qu'est-ce que l'indice git et comment est-il pertinent?
Quel est le problème avec l'indice Git?
"Index" git est l'endroit où vous placez les fichiers que vous voulez valider dans le référentiel git.
Avant de «valider» (archiver) des fichiers dans le référentiel git, vous devez d'abord les placer dans l’index git.
Je crois qu'en supprimant ce fichier, git réindexera le référentiel, en créera un nouveau et le tour est joué. Il résout ce problème car le référentiel local est réindexé sans le fichier que j'ai supprimé et qui a causé tout le tapage.
Edit: Il semble que cela soit lié au Mac (basé sur les commentaires) donc si cela aide, je suis sur OSX 10.10 et sur la version 2.3.4 de Git installée via brew.
rm .git/index
git reset
après avoir supprimé l'index, vous devez le recréer avec git reset
Aller au dossier principal du projet
rm .git/modules/your_project_structure/index
git reset --hard HEAD
Vous pouvez supprimer le fichier d'index Git de votre projet. À la racine de votre projet, exécutez la commande suivante:
rm .git/index
Après ça ça marche.
J'essaie une solution différente et cela fonctionne pour moi. Ci-dessous mes options
#cd .git
#rm index
#cd ..
#git add .
Le fichier d'index est situé dans le répertoire parent .git
:
.git/modules/your_project_structure/index
Dans un sous-module, il n'y a pas de répertoires nommés .git
(du moins dans le projet sur lequel je travaille), il n'y a qu'un fichier .git
qui vous indique (et git) où rechercher le répertoire git de ce projet.
Après avoir supprimé les fichiers d'index et effectué un git reset
, je me suis retrouvé confronté à de nombreux changements inexplicables et une réinitialisation matérielle n'aidait pas.
Attention vous perdrez toutes vos modifications, alors validez-les et appuyez sur Push avant de continuer.
L'index semblait corrompu, je l'ai donc supprimé avec les commandes suivantes.
git rm -rf --cached .
git reset --hard HEAD
Je viens de recevoir cette erreur avec le client de bureau Github (OSX). Tout ce que j'ai fait a été de quitter l'application et de la rouvrir.