webentwicklung-frage-antwort-db.com.de

git Push to remote branch

Leute,

Ich hatte ein Repo geklont. Ich habe daraus einen Zweig erstellt, um an einer Funktion zu arbeiten, indem ich den folgenden Befehl ausgab:

git branch fix78

dann habe ich an diesem Zweig von gearbeitet

git checkout fix78

Ich habe mich weiterhin bei dieser Zweigstelle engagiert. Nun wollte ich dies auf das Repo pushen und gab daher den folgenden Befehl aus:

git Push Origin master:fix78

Ich habe das Repo in einem Webbrowser angesehen und festgestellt, dass auf dem Repo ein neuer Zweig mit dem Namen fix78 erstellt wurde. Aber es hatte keine meiner Verpflichtungen, die ich gemacht hatte.

Was mache ich hier falsch? Das versuche ich zu erreichen:

Es gibt ein Repo (Master (Trunk im SVN-Jargon)), jetzt, wenn ich an einem Feature arbeite, möchte ich einen lokalen Zweig davon erstellen und dann möchte ich auch diesen Zweig zum Repo einchecken (damit das andere Team Mitglieder können sehen, woran ich arbeite.) Dann möchte ich, dass mein lokaler Zweig mit diesem von mir erstellten Remote-Zweig synchronisiert wird.

Jede Hilfe/Rückmeldung wäre total genial.

Vielen Dank.

48
Rubyalto

git Push Origin master:fix78 schiebt den lokalen Master zu einem entfernten Zweig mit dem Namen fix78. Sie wollten den lokalen Zweig fix78 pushen, der die gleiche Syntax hat, aber ohne das master:

Sie können das Problem beheben, indem Sie git Push Origin :fix78 um den entfernten Zweig zu löschen und dann git Push Origin fix78, um Ihre lokale Niederlassung zum Remote-Repository zu verschieben.

61
rlc

Der Push-Befehl hat die Form von

git Push remote_name source_ref:destination_ref

Alles, was Sie tun müssen, um Ihren Fehler zu korrigieren, ist

git Push Origin +fix78:fix78

Das Plus zeigt an, dass Sie sich nicht darum kümmern, dass dieser Zweig möglicherweise den Verlauf verliert, da der vorherige Push ein Fehler war.

Alternative Syntax ist

git Push -f Origin fix78

wenn Sie das Ziel nicht angeben, wird impliziert, dass es denselben Namen hat. Wenn die Verfolgung für einen bestimmten Zweig auf der Fernbedienung eingerichtet ist, wird dieser Zweig angesprochen. Das Löschen von Zweigen hat 2 Syntaxen, die alte:

git Push -f Origin :fix78

und

git Push --delete Origin fix78

Der erste lautet "Push nothing in fix78" und löscht ihn.

Ein Trick ist, dass, wenn Sie . Als Remote-Name angeben, dies das aktuelle Repo als Remote impliziert. Dies ist nützlich, um einen lokalen Zweig zu aktualisieren, ohne ihn auschecken zu müssen:

git Push . Origin/master:master

aktualisiert den Master, ohne den Master auschecken zu müssen.

Hoffe das hilft

52
Adam Dymitruk