Verwenden von Git Version 2.2.0 mit Unity Game Engine unter OS X und wollte meinen Code festschreiben. Ich habe alles hinzugefügt und keine Fehlermeldung erhalten. Geben Sie dann -m fest und erhalten Sie die folgende Fehlermeldung:
fatal: multiple stage entries for merged file 'Assets/Prefabs/Resources'
Als ich es nicht bemerkte, drückte ich, dass es keine Fehlermeldung gab, sagte Everything up-to-date
ich also Bitbucket (wo das Repo gehalten wird) und es zeigte nicht mein Commit. Also habe ich mein lokales Protokoll überprüft und das zeigt auch nicht mein Commit.
Ich habe in Google nach einer Antwort gesucht ... und nichts. Was ist das für ein Fehler? und wie kann ich das beheben?
Antworten:
Die erste Problemumgehung, die mit neueren Versionen von Git scheint zu funktionieren (2.3+, Q2 + 2015) wird in der genannten Zuschuss ist mehr up-to-date Antwort :
Löschen Sie den Index
Füge alle Hinzu
Verpflichten
Ursprüngliche Antwort (Ende 2014)
Die übliche Problemumgehung lautet:
Fügen Sie die Änderungen vom ersten zum zweiten Repo hinzu:
Sie können diese Fehlermeldung in sehen
read-cache.c
, die in diesem Patch ("read-cache.c
: Sicherstellen, dass nicht zusammengeführte Einträge entfernt werden ") und im Git 2.2-Commit eingeführt wurde .Da dies so neu ist, ist es möglich, dass ein Downgrade durchgeführt wird Git auf 2.1 ausreicht, um von diesem Patch nicht betroffen zu sein.
Das OP Daniel Toebe fügt in den Kommentaren hinzu :
quelle
git commit -c sha
Ich glaube, ich bin auf dieses Problem gestoßen, weil ich Änderungen hinzugefügt und festgeschrieben und dann eine Datei gelöscht habe, die ich gerade festgeschrieben hatte. Wenn dies Ihrem Fall ähnlich klingt, empfehle ich, die folgenden Schritte auszuführen, um das erneute Klonen und das manuelle Hinzufügen Ihrer Änderungen zu speichern.
Ich konnte dieses Problem beheben, indem ich die .git / index-Datei in meinem Repository löschte, ähnlich wie von @slider vorgeschlagen (ich glaube, er hat den Pfad falsch eingegeben).
Dann musste ich meine lokalen Änderungen erneut hinzufügen und festschreiben
Ich konnte dann aus der Ferne pushen.
Was ist der Git-Index und wie ist er relevant?
Was ist mit dem Git-Index los?
Ich glaube, dass durch das Löschen dieser Datei git das Repo neu indiziert, ein neues erstellt und Sie können loslegen. Es löst dieses Problem, da das lokale Repository ohne die von mir gelöschte Datei neu indiziert wird, was die ganze Aufregung verursacht hat.
Bearbeiten: Es scheint, dass dies mit dem Mac zusammenhängt (basierend auf Kommentaren). Wenn es hilft, bin ich unter OSX 10.10 und Git Version 2.3.4, die über Brew installiert wurden.
quelle
git add -A
git
. (Eigentlich glaube ich, dass es viele davon gibt.) Das Schließen von IntelliJ, das Entfernen des Index und das erneute Festschreiben meiner Arbeit haben einwandfrei funktioniert.Für das Projekt
Nach dem Löschen des Index müssen Sie ihn durch Git-Reset neu erstellen
Für Submodul:
Gehen Sie zum Hauptprojektordner
quelle
Sie können die Git-Indexdatei aus Ihrem Projekt entfernen. Führen Sie im Stammverzeichnis Ihres Projekts den folgenden Befehl aus:
Danach funktioniert es.
quelle
rm: /.git/index: No such file or directory
Mac OSX Yosemite; Git 2.3.4 installiert durch Homebrewrm .git/index
in deinem Git-Verzeichnis).Ich versuche eine andere Lösung und es funktioniert für mich. Unten sind meine Optionen
quelle
git reset
andernfalls erhalten Sie ihnfatal: Could not reset index file to revision 'HEAD'
.Wenn dies in einem Submodul passiert
Die Indexdatei befindet sich im übergeordneten
.git
Verzeichnis:In einem Submodul gibt es keine benannten Verzeichnisse
.git
(zumindest in dem Projekt, an dem ich arbeite), sondern nur eine.git
Datei, die Ihnen (und git) sagt, wo Sie nach dem git-Verzeichnis dieses Projekts suchen müssen.Der Git-Status zeigt Änderungen an, die ich nicht vorgenommen habe
Nachdem
git reset
ich die Indexdateien entfernt und a ausgeführt hatte , sah ich mich vielen unerklärlichen Änderungen gegenüber, und ein Hard-Reset half nicht.Warnung: Sie verlieren alle Ihre Änderungen. Legen Sie sie fest und drücken Sie sie, bevor Sie fortfahren.
Der Index schien beschädigt zu sein, daher habe ich ihn mit den folgenden Befehlen entfernt.
quelle
Ich habe gerade diesen Fehler mit dem Github Desktop Client (OSX) erhalten. Alles was ich getan habe war die App zu beenden und wieder zu öffnen und dann fing es an zu funktionieren.
quelle