2012-10-18 2 views
6

Mein lokaler Git Repo muss von einem Server ziehen. Es muss dann einen bestimmten Zweig zu einem Überprüfungsrepo mit einem anderen Zweignamen auf einem anderen Server verschieben.Wie man eine git Verzweigung setzt, um zu einer Fernbedienung mit einem anderen Zweignamen zu drücken und von einer völlig anderen URL zu ziehen

Etwas wie: Ziehen Sie alles von PullOnlyRepo auf Server1 (wir vielleicht diesen Ursprung nennen?) Push-Zweig Hotfix ReivewRepo mit Zweignamen JistChanges auf Server2.

Gerade jetzt git config--l zeigt:

remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
remote.origin.url=<URL for Server1> 
remote.origin.pushurl=no_push (this shouldn't matter since it is a pull only repo) 
branch.production.remote=origin 
branch.production.merge=refs/heads/production 
remote.review.url=<URL for Server2> 
remote.review.fetch=+refs/heads/*:refs/remotes/review/* 

git pull tut, was ich will (Fetch ändert sich von der richtigen Stelle auf Server1 und verschmilzt sie in meine Arbeit Baum).

Aber Git Push nicht. Um zu erreichen, was ich will, ich

git push review hotfix:JistChanges 

Gibt es eine Möglichkeit, dies zu machen git ziehen zu tun haben, tun, ohne in das Extramaterial setzen zu müssen?

Es gibt bereits einige Fragen, die eingerichtet wurden, damit Ihre lokale Verzweigung an eine Remote mit einem anderen Zweignamen übermittelt wird. Sie ändern aber auch den Upstream und wo der Pull herkommt.

+0

In welcher Version sind Sie eingeschaltet? Es gibt viele Konfigurationsvariablen ... –

+0

Ich bin auf Version 1.7.4.1 – Jistanidiot

Antwort

3

Sie können den upstream Zweig für hotfix gesetzt:

git config push.default upstream 
git config push.default review 
git branch --set-upstream hotfix review/JistChanges 

Siehe "How do you make an existing git branch track a remote branch?" Sehen "What is the result of git push origin?" auf der Standard push Politik

Ab git1.8.0 (bald "simple" zu sein) :

git branch -u review/JistChanges hotfix 

Die OP jistanidiotreports mit dem gleichen Ergebnis erreicht zu haben:

git remote set-url --push origin 
git config remote.origin.push refs/heads/hotfix:JistChanges 
+0

Auf der Git-Zweig - Set-Upstream-Hotfix-Überprüfung/JistChanges bekomme ich einen Fehler: Fehler: Fehlerhafter Wert für push.default: Überprüfung Fehler: Muss einer von nichts, Matching, Tracking oder aktuell sein. fatal: schlechte Konfig-Datei Zeile 19 in .git/config – Jistanidiot

+0

@Jistanidiot können Sie es auf 'Matching' oder' Upstream' setzen (http://StackOverflow.com/q/12294787/6309). – VonC

1

Ok VonC Antwort hat mich auf dem richtigen Weg. Hier ist, was ich getan habe:

Das einzige Problem mit diesem ist, dass jetzt alles zum Review-Repo schiebt. Das ist jetzt in Ordnung, da 90% der Arbeit in dieser Branche sein werden. Die anderen 10% kann ich einfach einen anderen Push machen, wo andere den gleichen Ursprung Repo mit der richtigen Push-Konfiguration.

+0

Ausgezeichnet, +1. Ich habe die Antwort aktualisiert, um deine zu reflektieren. – VonC

Verwandte Themen