2016-09-19 3 views
0

Ich habe zwei Zweige:Wie pushen Sie standardmäßig auf einen anders benannten Zweig?

master 
demo_master 

Und zwei Fernbedienungen: demo_origin/Master

origin 
demo_origin 

Wie ich git konfigurieren können automatisch Master origin/master und demo_master drücken, wenn die Ausgabe git push Befehl?


Ich habe versucht, das gewünschte Ergebnis durch

git push --set-upstream demo_origin demo_master:master 

jedoch zu erreichen, spuckt git die folgende Fehlermeldung aus, wenn ich versuche git push zu verwenden:

fatal: Der Upstream-Zweig Ihrer aktuellen Zweigstelle stimmt nicht mit dem Namen Ihrer aktuellen Zweigstelle überein. Zu drücken, um den Upstream-Zweig auf der Fernbedienung verwendet

git push demo_origin HEAD:master 

auf den Zweig mit dem gleichen Namen auf der Fernbedienung zu drücken, verwenden

git push demo_origin demo_master 
+1

'git config push.default stromaufwärts ' – PetSerAl

Antwort

1

Sie müssen set the push.default configuration richtig:

Definieren die Aktion git push nehmen soll, wenn kein Refspec explizit angegeben ist. Verschiedene Werte sind für bestimmte Workflows geeignet. Beispielsweise ist in einem rein zentralen Arbeitsablauf (d. h. die Abrufquelle entspricht dem Push-Ziel) upstream wahrscheinlich das, was Sie wollen.

Mit Git 2.0 wurde diese Einstellung auf simple standardmäßig eingestellt, um es einfach für Anfänger zu machen:

simple - in zentralisierten Workflow arbeiten wie stromaufwärts mit einer zusätzlichen Sicherheit drücken zu verweigern, wenn Der Name des Upstream-Zweiges ist anders als der lokale.

Wenn Sie auf eine Fernbedienung drücken, die sich von der Fernbedienung unterscheidet, von der Sie normalerweise abziehen, arbeiten Sie als Strom. Dies ist die sicherste Option und eignet sich für Anfänger.

Wie die Option sagt, weigert sich Git, zu einem Zweig mit einem anderen Namen zu wechseln.Um das zu erreichen, müssen Sie es upstream setzen:

upstream - der aktuellen Zweig zurückzudrängen Änderungen an den Zweig, der ist in der Regel in den aktuellen Zweig integriert (die @{upstream} genannt). Dieser Modus ist nur dann sinnvoll, wenn Sie zu demselben Repository navigieren, von dem Sie normalerweise ausgehen würden (d. H. Zentraler Workflow).

Also, git config -g push.default upstream, und dann sollte es mit git push --set-upstream demo_origin master:demo_master gut funktionieren. (beachten Sie, dass der lokale Zweig in local:remote zuerst kommt)

0

Auf master lokale Niederlassung Verwendung git push origin -u master und auf Die demo_master Zweigverwendung git push demo_origin -u master

Eine andere Lösung wäre git branch -u origin/master von master br anch und git branch -u demo_origin/master von demo_master Zweig.

https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Tracking-Branches

+0

Ich möchte demo_master zu demo_origin ** master **. Entsprechen diese Befehle nicht dem, was ich getan habe? –

+0

Ich denke, der richtige Weg, um es mit 'set-upstream-to' zu erreichen, ist' git branch --set-upstream-zu demo_origin/master', wenn Sie sich auf dem 'demo_master'-Zweig befinden. –

Verwandte Themen