210 Stimmen

Wie können Sie die Änderungen des aktuellen Zweigs auf die Änderungen, die in den Zweig eingefügt werden, zurücksetzen?

Okay. Wenn ich in einer Zweigstelle bin (sagen wir working ), und ich möchte die Änderungen aus einem anderen Zweig zusammenführen (z.B. master ), dann führe ich den Befehl git-merge master während auf der working Zweig, und die Änderungen werden eingebunden, ohne dass die Historie neu erstellt wird. Wenn ich git-rebase master dann sind die Änderungen in master umgestaltet werden, damit sie oben auf meinem working Branche. Was aber, wenn ich die Änderungen aus master sondern meine Änderungen in working um an der Spitze zu stehen? Wie kann ich das tun? Ist das machbar?

Ich könnte laufen git-rebase working in meiner master Zweig, um meine Änderungen oben in der master Zweig, aber ich würde das gerne in meinem working Zweig, und ich habe keine Ahnung wie. Das Naheliegendste, was mir einfällt, ist die Erstellung einer neuen Verzweigung von master und dann neu basierten working zu ändern, aber dann hätte ich einen neuen Zweig, anstatt die working Zweigstelle.

328voto

hobbs Punkte 204816

Sie haben was rebase rückwärts macht. git rebase master tut das, worum Sie bitten - es nimmt die Änderungen auf dem aktuellen Zweig (seit seiner Abweichung vom Master) und gibt sie oben auf master und setzt den Kopf des aktuellen Zweigs an die Spitze der neuen Geschichte. Es nicht Wiedergabe der Änderungen von master über dem aktuellen Zweig.

90voto

VonC Punkte 1117238

Eine andere Möglichkeit der Betrachtung ist git rebase master als:

Den aktuellen Zweig zurücksetzen oben auf master

Hier , ' master ' ist die stromaufwärts Zweig, und das erklärt, warum, während eines rebase, ours y theirs vertauscht sind .

5voto

Ben Perlmutter Punkte 31

Wenn Sie die aktuellen Änderungen auf den Master zurücksetzen, können Sie dies tun:

  1. den letzten Master herunterziehen: git pull <remote_name> master
  2. checken Sie den Zweig aus, in den Sie die Änderungen übertragen wollen: git checkout <branch_name>
  3. rebase durchführen: git rebase master

ein alternativer Pfad, der es Ihnen ermöglicht, Änderungen aus einem entfernten Zweig (z.B. origin/master) in einen lokalen Zweig zu übernehmen, ohne den entfernten Zweig lokal zu aktualisieren, ist: git rebase origin/master

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X