it-swarm.com.de

So kopieren Sie einen lokalen Git-Zweig in ein Remote-Repo

Ich habe bisher folgende Schritte unternommen:

  1. Ein Remote-Git-Repo wurde geklont
  2. Verzweigte den Stammzweig zu einem Experiment
  3. bearbeiteter/getesteter/festgeschriebener Code im experimentellen Zweig

Nun, ich bin nicht bereit, experimentell mit Master zu verschmelzen. Ich möchte es jedoch zum Remote-Repo zurückschieben, da dies das Repository ist, das ich mit einigen Kollegen teile. Ich möchte, dass sie sehen, was ich in der Versuchsbranche gemacht habe. Normalerweise greife ich nur über SSH auf das Remote-Repo zu. 

Wie kann ich meinen lokalen Zweig auf dem Remote-Repo freigeben, ohne den Master-Zweig des Remote-Repos zu beeinträchtigen?

126
Coocoo4Cocoa

Laut git Push Handbuchseite :

 git Push Origin experimental

Suchen Sie einen Ref, der mit experimental im Quell-Repository übereinstimmt (höchstwahrscheinlich würde er refs/heads/experimental finden), und aktualisieren Sie denselben Ref (z. B. refs/heads/experimental) im Origin-Repository damit.
Wenn experimental nicht remote vorhanden wäre, wird es erstellt.

Das ist das Gleiche wie:

git Push Origin experimental:refs/heads/experimental

Erstellen Sie den Zweig experimental im Origin-Repository, indem Sie den aktuellen Zweig experimental kopieren.
Dieses Formular ist nur erforderlich, um einen neuen Zweig oder ein neues Tag im fernen Repository zu erstellen, wenn der lokale Name und der ferne Name unterschiedlich sind; Andernfalls funktioniert der Referenzname alleine.

Oder, wie in git tip erwähnt, können Sie eine "Standard-Fernbedienung der Zweigstelle" einrichten:

Sie können git config verwenden, um einem Zweig eine Standard-Fernbedienung zuzuweisen. Diese Standard-Fernbedienung wird zum Push dieser Verzweigung verwendet, sofern nicht anders angegeben.

Wenn Sie git clone verwenden, ist dies bereits der Fall, sodass Sie git Push ohne Argumente verwenden können, um den lokalen Master-Zweig zu verschieben, um den Master-Zweig des Origin-Repositorys zu aktualisieren.

git config branch.<name>.remote <remote> 

kann verwendet werden, um dies manuell anzugeben.


Jan schlägt (für git> = 1.7.0 ) die Option Push -u (oder Push --set-upstream) vor:

Fügen Sie für jeden Zweig, der aktuell ist oder erfolgreich verschoben wurde, eine Upstream-Referenz (Tracking) hinzu, die von git-pull (1) ohne Argumente und anderen Befehlen verwendet wird.

Auf diese Weise müssen Sie keine Git-Konfiguration vornehmen.

git Push -u Origin experimental
156
VonC

Wenn der Name Ihres Zweiges experimental ist und der Name der Fernbedienung Origin, dann ist es

git Push Origin experimental
15
John Douthat

git Push -u <remote-name> <branch-name> funktioniert nicht, wenn der neu erstellte Zweig nicht aus demselben Repo erstellt wird, d. h. wenn Sie den neuen Zweig nicht mit git checkout -b new_branch erstellt haben, funktioniert dies nicht.

Zum Beispiel hatte ich lokal zwei verschiedene Repositorys geklont, und ich musste repo2/branch1 nach repo1/kopieren und dann auch Push drücken.

Dieser - Link hat mir geholfen, meinen lokalen Zweig (geklont von einem anderen Repo) zu meinem Remote-Repo zu verschieben:

1
brokenfoot

Hier ist die maßgebliche github-Seite für github remote management http://github.com/guides/Push-a-branch-to-github . Es wird Ihnen helfen, alle Ihre Fragen zu beantworten.

0
dylanfm

tl; dr

$ git Push --set-upstream Origin your_new_branch

mehr Info

nachdem Sie einige Verpflichtungen in Ihrem eingegangen sind:

$ git checkout -b your_new_branch
$ git add file
$ git commit -m "changed file"

sie drücken Ihren Zweig, indem Sie einen Upstream in eines der entfernten Repositorys angeben, wie folgt:

$ git Push --set-upstream REMOTE YOUR_BRANCH

fernbedienungen können durch gesehen werden 

$ git remote -v

in der Regel haben Sie eine einzige Standard-Remote-Variable Origin. so würde dein Befehl aussehen:

$ git Push --set-upstream Origin your_new_branch

und alle konsequenten Pushs können nur mit git Push durchgeführt werden.

0