3704 Stimmen

Wie erstellt man einen entfernten Git-Zweig?

Ich habe einen lokalen Zweig erstellt, den ich nach oben schieben möchte. Es gibt eine ähnliche Frage hier auf Stack Overflow, wie man einen neu erstellten entfernten Zweig verfolgen kann.

Mein Arbeitsablauf ist jedoch etwas anders. Erste Ich möchte einen lokalen Zweig erstellen und ihn erst dann weitergeben, wenn ich zufrieden bin und meinen Zweig freigeben möchte.

  • Wie würde ich das machen? (meine Google-Suche scheint nichts zu ergeben).
  • Wie kann ich meinen Kollegen sagen, dass sie es aus dem Upstream-Repository ziehen sollen?

UPDATE Mit Git 2.0 gibt es eine einfachere Antwort Ich habe unten geschrieben: https://stackoverflow.com/a/27185855/109305

16 Stimmen

Wurde Ihre zweite Frage jemals beantwortet? >>Und wie würde ich meinen Kollegen sagen, dass sie es aus dem Upstream-Repository ziehen sollen?

0 Stimmen

1 Stimmen

@milkplus get fetch --all holt die neuen Zweige auf der entfernten Seite ab (aber nur eine get fetch --prune löscht lokal die Verweise auf die gelöschten entfernten Zweige). Ich denke, entweder sollte dies automatisch eingerichtet werden, oder man muss sie mündlich darauf ansprechen.

84voto

sreekumar Punkte 2267

Wenn Sie einen Zweig aus dem aktuellen Zweig erstellen möchten

git checkout -b {your_local_branch_name}

eine Verzweigung aus einem entfernten Zweig wünschen, können Sie versuchen

git checkout -b {your_local_branch_name} origin/<remote_branch_name>

Wenn Sie mit den Änderungen fertig sind, können Sie die Datei hinzufügen.

git add -A or git add <each_file_names>

Dann führen Sie eine lokale Übertragung durch

git commit -m 'your commit message'

Wenn Sie an ein entferntes Repository pushen möchten

git push -u origin <your_local_branch_name>

Alle zusammen werden

git checkout -b bug_fixes 

oder Wenn Sie einen lokalen Zweig erstellen möchten bug_fixes von einem entfernten Zweig, sagen wir development

git checkout -b bug_fixes origin/development

Sie können den Zweig in das entfernte Repository pushen, indem Sie

git push -u origin bug_fixes

Wenn Sie Ihren Zweig von einem anderen Zweig aus aktualisieren möchten, sagen Sie master ,

git pull origin master

69voto

Javier C. Punkte 6835

[Schnelle Antwort]

Sie können dies in 2 Schritten tun:

1. Verwenden Sie die checkout für die Erstellung des lokalen Zweigs:

git checkout -b yourBranchName

2. Verwenden Sie die push um den Zweig automatisch zu erstellen und den Code an das entfernte Repository zu senden:

git push -u origin yourBranchName

Es gibt mehrere Möglichkeiten, dies zu tun, aber ich denke, dass dieser Weg wirklich einfach ist.

52voto

Tassadar Punkte 1801

Wenn Sie nur einen entfernten Zweig erstellen wollen, ohne den lokalen Zweig zu haben, können Sie das so machen:

git push origin HEAD:refs/heads/foo

Es drängt, was auch immer Ihr HEAD ist, zu verzweigen foo die auf der Fernbedienung nicht vorhanden waren.

1 Stimmen

Dadurch wurde mein Visual Studio so durcheinander gebracht, dass es nicht mehr richtig gestartet werden konnte. Der Team Explorer würde überhaupt nicht geladen werden, aber alles andere ging bonkers werfen Fehler auch. Nur zu Ihrer Information.

0 Stimmen

Das hört sich so an, als sollte es funktionieren, aber als ich es tatsächlich ausprobierte, erkannte unser Gitlab-Server das Ergebnis nicht als Zweig.

0 Stimmen

Von welcher Verzweigung wird foo auf der entfernten Seite abgezweigt? Was wäre, wenn ich möchte, dass foo von foo2 verzweigt? Ist das möglich? Ich danke Ihnen.

35voto

sapy Punkte 7878

Die einfachste Lösung... Trommelwirbel... git Version 2.10.1 (Apple Git-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes, and do a git commit 

3) git push origin localBranchNameThatDoesNotExistInRemote --force

N.B. - Der Zweig, den Sie gerade in Ihrer lokalen Umgebung erstellt haben, und der entfernte, nicht existierende Zweig, den Sie zu pushen versuchen, müssen den gleichen Namen haben .

3 Stimmen

Vielen Dank für Ihre Anregung. Auch wenn Sie dies als einfache Lösung bezeichnen, denke ich dennoch git push -u ist viel einfacher. Erfordert, dass Sie eine globale Konfigurationszeile haben, siehe stackoverflow.com/a/27185855/109305 . Ich verwende git push -u Es deckt 99 % meiner Arbeitsanwendungen ab.

30voto

ipegasus Punkte 13792

Zuerst erstellen Sie den Zweig lokal:

git checkout -b your_branch

Und dann die Verzweigung aus der Ferne zu erstellen:

git push --set-upstream origin your_branch

Hinweis: Dies funktioniert mit den neuesten Versionen von git:

$ git --version
git version 2.3.0

Zum Wohl!

0 Stimmen

Dies ist nur der Hilfetext, der durch den Befehl git push wenn Ihr lokaler Zweig nicht von einem entfernten Zweig verfolgt wird.

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