git erlaubt es (standardmäßig) nicht, zu einem Zweig zu drücken, der die Zweigspitze "zurückspult". Mit anderen Worten, wenn der aktuelle Zweigkopf kein direkter Elternteil oder Vorfahre der Zweigspitze ist, wird der Push abgelehnt.
Sie können versuchen, trotzdem zu drücken, indem Sie die Option -f
zu git push
verwenden, oder indem Sie eine refspec mit einem führenden '+', z. git push origin +mybranch:mybranch
.
In der Regel werden Remote-Repositories dies nicht zulassen, da Sie riskieren, Commits zu verlieren, wenn verschiedene Personen wahllos Zweig-Tipps pushen können, die keine Commits enthalten, die sie nicht lokal haben.
Sie können dieses Verhalten überschreiben, indem Sie den Konfigurationsparameter receive.denyNonFastForwards
im Remote-Repository ändern (vorausgesetzt, Sie verfügen über den entsprechenden Zugriff auf das Remote-Repository).
Wenn Sie keinen solchen Zugriff haben, können Sie können dies erreichen, indem Sie den Remote-Zweig löschen und neu erstellen.
z.B.
git push origin :mybranch
git push origin mybranch
Beachten Sie, dass neuere Versionen von git einen Konfigurationsparameter receive.denyDeletes
enthalten, wird, wenn gesetzt, verhindern diese potenziell gefährliche Abhilfe von der Arbeit.
Schön, ich wusste nicht über denyNonFastForwards: Ich hatte angenommen, dass Sie einen Haken benötigt, um das durchzusetzen. – araqnid