BEACHTUNG! Obwohl diese Antwort die meisten Stimmen hat und technisch korrekt ist, deutet dies darauf hin, dass das Problem die push.default
Option ist, wenn das eigentliche Problem normalerweise eine unbeabsichtigte Nichtübereinstimmung zwischen den Namen der lokalen Niederlassung und der vorgelagerten Niederlassung ist. Wenn Sie die Anweisungen in dieser Antwort blind befolgen, werden Ihre Änderungen möglicherweise in den falschen Zweig verschoben! Eine sichere schnelle Lösung finden Sie stattdessen unter https://stackoverflow.com/a/24865780/2279059 .
Zum Nutzen der Leser, die möglicherweise das wahrscheinlich wichtigste Detail übersehen, das in den Kommentaren gut versteckt ist:
Dies liegt an der git config push.default
Einstellung. Es definiert, was git
bei der Eingabe geschieht git push
( siehe Link ).
In der Frage wurde anscheinend die Einstellung auf simple
(was die Standardeinstellung für ist git v2
) gesetzt, wahrscheinlich mit
git config --global push.default simple
Dies bedeutet, dass es sich git
weigert zu pushen, wenn der lokale und der entfernte Zweig nicht genau übereinstimmen.
Wie @TomSpurling feststellt, ist die obige Einstellung sicherer und wird für den normalen Gebrauch empfohlen, da Sie normalerweise die gleichen Namen für Ihre lokalen und Remote-Niederlassungen wünschen.
In bestimmten Situationen möchten Sie jedoch Folgendes ändern, wenn Ihr lokaler Zweig einen anderen Remote-Zweig mit einem anderen Namen verfolgt:
Verwenden Sie die Option make git pull
und git push
symmetrisch , um zu ermöglichen, pro Git auf den Tracking-Zweig zu pushen
git config push.default upstream
Hinweis: Um dies global für alle Ihre git
s festzulegen, verwenden git config --global push.default upstream
Sie. Es ist jedoch wahrscheinlich besser, dies zu belassen git config --global push.default simple
und diese Option nur in den Workloads festzulegen, in denen dies wirklich erforderlich ist.