Es gibt verschiedene Möglichkeiten, den Upstream einzustellen, während oder gleichzeitig gedrückt wird.
Wenn dies magit-push-current-set-remote-if-missing
nicht nil
der Fall ist (Standardeinstellung), wird Folgendes angezeigt:
Push feature to
p pushRemote, after setting that
u @{upstream}, after setting that
e elsewhere
Um dies zu drücken origin/feature
und als Upstream festzulegen, drücken Sie uund RETakzeptieren Sie dann den Standard-Abschlusskandidaten.
Wenn magit-push-current-set-remote-if-missing
ja nil
, dann würden Sie dies stattdessen sehen:
Push feature to
e elsewhere
Wenn Sie pjetzt gedrückt haben, wird Ihnen mitgeteilt, dass der Upstream nicht konfiguriert ist (was bedeutet, dass Sie nicht zum Upstream pushen können, wenn kein Upstream vorhanden ist).
Wenn dies magit-push-current-set-remote-if-missing
jedoch nil
der Fall ist , wird die Liste der Schalter angezeigt --set-upstream
, sodass Sie sie P - u pwie gewohnt verwenden können (außer dass das zweite p in Kleinbuchstaben geschrieben ist). Es gibt jedoch eine Komplikation: Nachdem Sie den Wert von magit-push-current-set-remote-if-missing
geändert haben, müssen Sie Emacs neu starten, damit er angezeigt --set-upstream
oder ausgeblendet wird.
Schließlich können Sie den Upstream mit dem Befehl "Set Upstream (und nichts anderes tun)" einstellen : b uorigin/master
RET. Beachten Sie, dass Sie bei Verwendung dieses Ansatzes nur einen bereits vorhandenen Zweig auswählen können.
Aber es wäre besser, die Push-Fernbedienung zu konfigurieren und darauf zu pushen. Weitere Informationen zur Push-Fernbedienung und zu den Unterschieden zum Upstream finden Sie im Verzweigungsknoten im Info-Handbuch (die Webversion wurde noch nicht aktualisiert).
Grundsätzlich ist der Upstream-Zweig höchstwahrscheinlich der Zweig, in den Ihr Feature-Zweig schließlich zusammengeführt wird (durch Zusammenführen oder erneutes Basieren, nicht durch Drücken) origin/master
. Auf der Push-Fernbedienung können Sie Ihre Feature-Zweige verschieben, während Sie noch daran arbeiten, damit andere Personen sie zusammenführen können. Wenn der lokale Zweig benannt ist feature
und die Push-Fernbedienung my-fork
, wird durch Drücken dieses Zweigs mit P pgedrückt my-fork/feature
. (Der "Push-to-Branch" kann nicht konfiguriert werden. Der Name des Zweigs auf der Push-Fernbedienung stimmt immer mit dem lokalen Namen überein.)
Während Ihre Frage so etwas wie "Wie drücke ich auf den Upstream, während ich gleichzeitig den Upstream konfiguriere" lautete, ist meine Empfehlung, überhaupt nicht auf den Upstream zu pushen, sondern stattdessen auf die Push-Fernbedienung.
Vorausgesetzt, Sie haben den Wert von nicht geändert magit-push-current-set-remote-if-missing
, können Sie die Push-Fernbedienung mit konfigurieren P psome-remote
RET. Da Sie jedoch wahrscheinlich alle Feature-Zweige auf dieselbe Fernbedienung übertragen, ist es besser, die Push-Fernbedienung einmal für alle Zweige einzustellen und damit fertig zu sein: bund dann, M-pbis die richtige Fernbedienung ausgewählt ist.
Beachten Sie auch, dass es normalerweise nicht erforderlich sein sollte, den Upstream-Zweig explizit festzulegen. Wenn Sie einen neuen Zweig erstellen und einen Remote-Zweig als Ausgangspunkt auswählen, wird dieser als Upstream verwendet.
Leider ist der Ausgangspunkt normalerweise ein lokaler Zweig, und in diesem Fall verwendet Git ihn standardmäßig nicht als Upstream. Dies kann jedoch leicht behoben werden, indem Sie dies einmal ausführen:
git config --global branch.autoSetupMerge always
Der Standardwert ist true
"Startpunkt als Upstream festlegen, sofern es sich um einen Remote- Zweig handelt".
Gleiches gilt übrigens für die Push-Fernbedienung. Auch das sollte normalerweise halbautomatisch in "neuen" Repositorys eingestellt werden. Wenn Sie ein Repository klonen, werden Sie gefragt, ob Sie es origin
als Push-Remote verwenden möchten . Sie sollten mit "Ja" antworten, es sei denn, Sie fügen beispielsweise eine weitere Fernbedienung hinzu, my-fork
die als Push-Fernbedienung verwendet werden soll. Wenn Sie eine neue Fernbedienung mit hinzufügen M aund remote.pushDefault
noch nicht eingestellt sind, werden Sie gefragt, ob Sie die neu hinzugefügte Fernbedienung als Push-Fernbedienung verwenden möchten.
Dies kann mit magit-clone-set-remote.pushDefault
und konfiguriert werden magit-remote-add-set-remote.pushDefault
.
Eine weitere erweiterte Option ist magit-branch-prefer-remote-upstream
die Standardeinstellung nil
. Wenn Sie es auf setzen t
und dann einen lokalen Zweig als Startpunkt für einen neuen Zweig auswählen, wird möglicherweise der Upstream des Startpunkts (gemäß einigen Regeln, siehe doc-string) anstelle des Upstreams verwendet der Ausgangspunkt selbst.
<remote>/<branch>
Teil wurde versehentlich aus der Eingabeaufforderung herausgelassen (siehe diesen Kommentar ). In der Zwischenzeit können Siemagit-push-current-set-remote-if-missing
auf Null setzen.