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.
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.
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