Führen Sie einen lokalen Zweig in einen anderen lokalen Zweig ein

166

Ich habe mehrere Zweige, die vom Master abgezweigt sind (jeder in einem separaten Unterverzeichnis).

  • Branch1: Neuentwicklung, noch nicht vollständig abgeschlossen
  • Branch2: Hotfix für ein Problem, das jedoch noch getestet wird
  • Branch3: Durcheinander von Branch, den ich nicht wiederherstellen werde

Bevor der Test des Hotfixes abgeschlossen ist, möchte ich, dass der Code bereits in Branch1 verfügbar ist, damit ich mit dem Fix weiterarbeiten kann.
(Aber da meine Erfahrung mit Git nicht so groß ist, habe ich zuerst angefangen, mit dem Zusammenführen in einem dritten Zweig herumzuspielen, der speziell zum Herumspielen erstellt wurde, bevor ich entweder Zweig1 oder Zweig2 durcheinander bringe.)

In meinem 3. Zweig habe ich zuerst Folgendes versucht:

git merge feature/Branch1

Dies ergab jedoch den folgenden Fehler:

fatal: 'feature/Branch1' does not point to a commit

Ich habe als nächstes ein Commit -a in meinem Branch1 durchgeführt und es erneut versucht, aber es gibt immer wieder den gleichen Fehler.

Was mache ich falsch? Was kann ich tun, um den Code aus - in diesem Fall - Branch1 mit Branch3 zusammenzuführen?

Nemelis
quelle

Antworten:

235

Überprüfen Sie zunächst Ihre Filiale3:

git checkout Branch3

Führen Sie dann Branch1 zusammen:

git merge Branch1

Und wenn Sie die aktualisierten Commits von Branch1 auf Branch2 möchten, suchen Sie wahrscheinlich nach git rebase

git checkout Branch2
git rebase Branch1

Dadurch wird Ihr Branch2 mit den neuesten Updates von Branch1 aktualisiert.

gabra
quelle
1
(Ich möchte die Aktualisierungen von Branch2 auf Branch1 ;-)) Branch2 sieht Branch1, aber nicht umgekehrt, wenn ich in beiden Zweigen einen Git-Zweig -a mache. Daher kann ich in Branch1 keine Rebase für Branch2 durchführen: Git Rebase Branch2 -> fatal: Benötigte eine einzige Revision
Nemelis
Wenn ich die Rebase als Git Rebase Origin / Branch2 mache, gibt es immer noch diese Fehlermeldung + ungültigen Upstream Origin / Branch2
Nemelis
1
@ Si8 Dies fügt nur die Commits von Branch1 zu Branch3 hinzu. Branch1 wird unverändert beibehalten.
Gabra
1
Vielen Dank. Wenn ich mich derzeit in der Dev-Niederlassung befinde und Dev1 zusammenführe, wird Dev1 mit Dev zusammengeführt. Stimmt das?
Si8
1
Ja. Ich empfehle es zu versuchen. Wenn etwas kaputt geht, können Sie zurückgehen. Das ist der Zweck eines VCS.
Gabra