2011-01-14 10 views
2

Für eine Web-Entwicklungs-Projekt verschmelzen haben sollte, habe ich die folgenden Zweige:wie ein git rebase zu reparieren, die ein git

  • Stamm: den Hauptzweig, in dem alle neuen Funktion bis Ende
  • verschmolzen
  • deploy: der Zweig mit serverspezifischen Bereitstellungseinstellungen

bei jedem Einsatz der Stamm Zweig i verschmolzen nto die deploy Niederlassung, die neuesten Entwicklungen in die Bereitstellung zu integrieren.

Das Problem ist, dass während der letzten Einsatz, das habe ich, während auf der Zweig bereitstellen

git Herkunft/Stamm

statt

git merge rebase Ursprung/Stamm

Jetzt versuche ich eine neue Bereitstellung durchzuführen und die Zusammenführung durchzuführen, aber alles wird zur Hölle, und Konflikte können nicht gelöst werden.

Irgendwelche Idee, wie ich meine deploy Zweig aufräumen könnte?

Antwort

2

Sie müssen die Rebase auf Ihrem Zweig deploy rückgängig machen.

finden, wo die rebase passiert:

git checkout deploy 
git reflog 

Dann setzen Sie die gefundenen Referenzen:

git reset --hard [email protected]{N} 

Beachten Sie, diese ganze Arbeit rückgängig machen werden Sie in den taten bereitstellen Zweig nach der Referenz .

+0

git reflog funktioniert in diesem Fall nicht, da ewashing bereits zum Ursprung verschoben wurde. Ich denke an 1. die letzte Zusammenführung herauszufinden, 2. 'git reset --hard ...' darauf, 3. git merge Ursprung/trunk auf Deploy-Zweig. Würde es Sinn machen? –

+0

@Electrogramme: Haben Sie _deploy_ auf _origin_ geschoben? Wenn ja, wie gesagt zurücksetzen und erneut drücken mit '--force'. Auf diese Weise überschreiben Sie _origin_. Lass mich wissen wie es geht. WICHTIG: Stellen Sie sicher, dass Sie zuerst alles sichern, damit Sie Ihre Arbeit nicht verlieren, wenn etwas schief geht. – jweyrich