Remote-Zweig in ein lokales Repo mit einem anderen Namen ziehen?

111

Okay, ich habe ein bisschen darüber recherchiert, aber ich konnte keine genaue Antwort finden, also muss ich fragen.

Ich habe 2 Fernbedienungen: origin und repo2.

Ich würde gerne so etwas machen

git pull repo2 master

Aber dies würde den Hauptzweig des Repo2 in meinen Master ziehen. Kann ich für meinen lokalen Zweig einen anderen Zweig angeben, in den gezogen werden soll?

Cosmin Atanasiu
quelle

Antworten:

161
git checkout -b myBranchName repo2/master
KingCrunch
quelle
20
Hinweis - Sie müssen git fetch remote2vorher ausgeführt worden sein, falls dies noch nicht geschehen ist. Andernfalls wird möglicherweise> fatal angezeigt: Pfade können nicht aktualisiert und gleichzeitig zum Zweig 'myBranchName' gewechselt werden.
Dman
Hinweis - wenn Sie zurückschieben müssen, wird die Verwendung git push repo2 myBranchName:masterals einfach git pushfehlschlagen
jaimedash
2
Was ist, wenn der Zweig bereits existiert? Ich möchte dort den Code mit dem Code von Repo aktualisieren.
Jared
@Jared Technisch eine andere Frage, aber auch leicht möglich (und das ist eigentlich einer der häufigsten Anwendungsfälle). Es hängt etwas davon ab, was Sie bereits getan haben. In den meisten Fällen ist es nur git checkout my_branch && git pull --rebase( --rebasehängt von Ihrem Workflow ab). Wenn der Zweig den Remote-Zweig noch nicht verfolgt, müssen Sie ihn git branch --set-upstream my_branch upstream/my_brancheinmal ausführen .
KingCrunch
4

Der git pullBefehl ist eine Komfortfunktion, die git fetchund ausführt git merge. Wenn Sie nur Zweige von einer neuen Fernbedienung abrufen möchten, ohne zu versuchen, sie in einen Zweig für Arbeitskopien zusammenzuführen, den Sie einfach verwenden können git fetch. Sie können sich dann darauf beziehen, git branch -avum alle lokalen und Remote-Zweige anzuzeigen und auf jeder Remote zu arbeiten, wie Sie möchten.

Ben Jackson
quelle