2012-12-07 17 views
5

Wir verwenden Qooxdoo Framework in unserer Anwendung. Momentan ist die Kopie in unserem Git-Repository im Stammordner "qooxdoo" gespeichert. Wir haben uns entschieden, das mit einem Submodul zu ersetzen, das direkt auf das GitHub Qooxdoo Repository zeigt, damit wir neue Versionen in Zukunft einfacher auschecken können.Git fusionieren beim Umschalten auf Submodul

Ich erstellt Zweig für diese Änderungen basierend auf Master, genannt Qooxdoo-Update. Der alte Ordner wurde komplett entfernt und das Submodul für qooxdoo hinzugefügt.

git rm -r qooxdoo
git submodule add git://github.com/qooxdoo/qooxdoo.git qooxdoo

Bis jetzt funktioniert das ziemlich gut. Es treten jedoch Probleme auf, wenn ich den Master in diesen Zweig integrieren möchte, um ihn so lange aktualisiert zu halten, bis andere Entwickler ihren Code gegen die neue Version testen können.

Während noch in qooxdoo-Update Zweig Ausgabe I Befehl:

git merge origin/master

CONFLICT (file/directory): There is a directory with name qooxdoo in origin/master. Adding qooxdoo as qooxdoo~HEAD

dann ...

git status
Unmerged paths: (use "git add/rm ..." as appropriate to mark resolution)

added by us:  qooxdoo 

läuft ...

git rm qooxdoo
qooxdoo: needs merge
rm 'qooxdoo'
Unlink of file 'qooxdoo' failed. Should I try again? (y/n)

oder ...

git add qooxdoo
error: unable to index file qooxdoo
fatal: updating files failed

So bin ich nicht wirklich sicher, wie man diesen Konflikt löst, um das Verschmelzen erfolgreich zu beenden.

+1

Wenn Sie 'git mergetool' ausführen, sollte es Ihnen die Möglichkeit geben, ihre zu übernehmen oder Ihre IIRC zu behalten. mergetool ist normalerweise der einfachste Weg, um Konflikte zu lösen. – asm

+0

Ja, ich weiß, aber das löst nichts. Ich habe hier auch das TortoiseGit und habe dort versucht den Konflikt zu lösen, endete aber mit gleichen Fehlermeldungen. – FredyC

+0

Mögliches Duplikat von [Git-Fehler: Datei kann nicht indexiert werden Crashlytics.framework/Header] (http://stackoverflow.com/questions/30580948/git-error-unable-to-index-file-crashlytics-framework-headers) – kenorb

Antwort

0

Der Befehl git rm -rf qooxdoo sollte in einem eigenen Commit ausgeführt werden, gefolgt von der Submodul-Addition. Das wird git (wenn es vom Meister in den Zweig übergeht) über die Absichten informieren. Momentan ersetzt das gleiche Commit nur die Dateien/Inhalte - also wird git verwirrt. Kannst du den Master Commit wiederholen?

+0

Sorry, dieses Repo ist schon lange weg, also kann ich es nicht testen. Wie auch immer Sie antworten, scheint logisch, also ist es Ihr;) – FredyC

+0

nein. das "nicht verwirren" Git –

1

Wenn Sie auf die vorherige aktuelle Version der Datei/dir kommen wollen, Ausführung:

git reset HEAD qooxdoo 

funktionieren sollte.

Verwandte Themen