2012-04-02 14 views
10

So hat meine Arbeitsumgebung genau einen Zweig mit einem Remote-Begleiter auf Github. Ich versuche git pull --rebase zu tun, um zu verhindern, dass git push Merge-Commit-Nachrichten erstellen, die keine neuen Informationen für andere bereitstellen, die an diesem Projekt arbeiten, und nur die Arbeit verkleben. Aber wenn ich das versuche, gibt es mir das:"git pull --rebase" führt zu "Kann nicht auf mehrere Zweige rebase"

From https://github.com/our_profile/our_repository 
* branch   HEAD  -> FETCH_HEAD 
Cannot rebase onto multiple branches 

Und der Pull bricht ab. Rufen Sie an git branch informiert mich, dass ich nur eine Filiale auf meinem lokalen Computer habe, also was ist los?

+0

Ja, und Ausführen * 'git pull --rebase' * zum zweiten Mal funktioniert! Das liegt daran, dass git während der ersten Aktion die Daten abgerufen hat, so dass Remote- und lokale Master-Zweige das gleiche Commit anzeigen. –

Antwort

9

Versuchen genau spezifizieren, was Remote-Zweig Sie ziehen wollen:

git pull --rebase origin branch 

Alternativ können Sie git fetch auch alle Änderungen aus der Remote-Repository zuerst, und dann manuell rebase:

git rebase origin/branch 
+0

Das hat fast funktioniert, aber es endete damit, dass viele Dateien zum Löschen markiert wurden. Ich musste in GUI gehen, um die Arbeit zu speichern, die ich an ihnen gemacht hatte. – bourgtai

+0

Wissen Sie, warum diese Situation aufgetreten ist? – dbn

-2

Die einfachste Lösung Ich entdeckte, dass TortoiseGit den kontextuellen Menüpunkt "Git Sync" benutzt. In es ist ein Mittel zu holen & Rebase auf Ihrem aktuellen Arbeitszweig.

+0

Ich dachte, git pull hat standardmäßig einen Abruf durchgeführt, der sich bei all dem Abruf-Messaging bemerkbar macht. Was fügt das oben hinzu? – Hazok

3

In meinem Fall musste ich beide spezifisch sein, welche Fernbedienung und das Flag --rebase an das Ende des Befehls verschieben.

So: git pull origin master --rebase

aus dieser Antwort gelernt: Git: Cannot rebase onto multiple branches