Alle, die „eine andere eine andere“ in der ursprünglichen Frage, die Antwort und viele Kommentare sind so verwirrend (das ist ein perfektes Beispiel dafür ist es, warum ist wichtig, um Ihre Sachen in erster Linie zu benennen), ich kann nicht helfen helfen (Wortspiel nicht beabsichtigt), noch eine andere Antwort zu schreiben, wie unten.
F: Gibt es einen Weg in git (bare) Repository einen Zweig zu schieben, der nicht in HEAD jetzt ist? Zum Beispiel habe ich zwei Zweige und zwei Fernbedienungen. Ich muss in der Lage sein, von feature
zu upstream/feature
nur in einem Befehl zu drücken, ohne HEAD zu ändern.
$ git branch
* master
feature
$ git remote
origin
upstream
A: Tun Sie dies.
$ git push upstream feature
F: Bedeutet es, dass es lokale feature
-upstream/feature
vorantreiben wird? Ich dachte immer, es wird den aktuellen HEAD auf upstream/feature
schieben.
A: Ja. Der feature
Teil ist ein refspec, der im Allgemeinen die Form src:dst
hat. Dies bedeutet, den lokalen Zweig src
an den entfernten Zweig dst
zu senden. Wenn :dst
nicht angegeben wird, wird der lokale Zweig src
an den Remote-Zweig src
gesendet. Sie können auch einen anderen Namen als Remote-Zweig angeben. Just do:
$ git push upstream feature:cool_new_feature
(Danke @ gabriele-Petron und @alexkey für Materialien für diese Antwort bereitstellt.)
Sie sollten erwägen nicht für eine Fernbedienung und einen Zweig mit den exakt gleichen Namen. Es ist verwirrend. –
Sie können 'git branch -m anderen another_branch' oder' git remote benennen Sie ein anderes another_remote' –
@KlasMellbourn, das ist nur für den Zweck des Beispiels. Natürlich habe ich diese seltsame Benennung nicht. – AlexKey