2016-07-26 12 views
2

Ich habe ein Git-System mit Upstream/Herkunft/lokal.Git Merge Upstream-Zweig

vorgelagert hat Zweig b1 und b2 Ursprung hat Zweig b1 lokale hat b1.

Ich möchte Änderungen von b2 (was b1 + einige neue Commits) zu Ursprung b1 setzen.

habe ich versucht, den Befehl:

git fetch upstream b2 
git checkout origin/b1 
git merge upstream b2 (which shows a Fast-forward) 
git push origin b1 (Which shows "Everything up-to-date") 

jedoch, wenn i Herkunft/b1 besuchen nicht ich die weitere Commits sehen.

Kann jemand vorschlagen, was ich vermisse?

Antwort

3
git fetch upstream    # pull in latest changes from upstream, including b2 
git push origin upstream/b2:b1 # push tracking branch upstream/b2 to origin/b1 
+0

Das hat den Trick gemacht. Was ich vermisste, das funktionierte wie Magie. Kannst du bitte erklären. – CodeMonkey

+1

Ich habe es in den Kommentaren erklärt. Sie wollen im Grunde nur 'b2' von der Fernbedienung 'upstream' in den Zweig' b1' vom entfernten 'Ursprung' drücken. Also, Sie können 'git fetch' holen, um diesen' b2'-Zweig lokal als einen Verfolgungszweig zu erhalten, und ihn dann zu "b1" auf dem entfernten "Ursprung" schieben. –

+0

Danke. Aber sollte nicht von b2 über Checkout von b1 verschmelzen, sollten die letzten Commits auf b1 bekommen? – CodeMonkey