Gibt es eine Verknüpfung, mit der Git angewiesen wird, den aktuellen Tracking-Zweig auf den Ursprung zu verschieben?
Hinweis: Ich weiß, dass ich das Standard-Push-Verhalten ändern kann , suche jedoch nach einer Ad-hoc-Lösung, die das Standardverhalten nicht ändert.
Angenommen, ich bin in einem Zweig, den feature/123-sandbox-tests
ich verwenden würde
git push origin feature/123-sandbox-tests
das ist langweilig. Ich suche nach einer Abkürzung, so etwas wie
git push origin current
Wo Git weiß, dass Strom ist feature/123-sandbox-tests
.
Bearbeiten : Ab Version 2.0 hat sich das Standardverhalten von git in ein intuitiveres Verhalten geändert, was ich erreichen wollte. Siehe diese SO-Frage für Details.
Bearbeiten 2 : Die Antwort von ceztko ist die beste Antwort, da der aktuelle Zweig unabhängig von den Einstellungen verschoben werden kann.
git push
nur den aktuellen Zweig zu verschieben, aber auf anderen Computern können Sie versehentlich alle übereinstimmenden Zweige verschieben.co
. Wenn ich also versuchen würde, Code ohne meine~/.gitconfig
Datei auf dieser VM herunterzuziehen und dann auszuchecken, werde ich es sofort wissen. Dadurch fühle ich mich ziemlich sicher, wenn ich die Push-Standardeinstellung auf ändereupstream
.@
, was als gültiger Alias für dokumentiert istHEAD
. (zBgit push -u origin @
)Mit dem folgenden Befehl können Sie git so konfigurieren , dass es zum aktuellen Zweig wechselt
dann mach es einfach
Dadurch wird der Code in Ihren aktuellen Zweig verschoben.
quelle
push = refs/heads/current:refs/for/master/current
einen 'Remote'-Abschnitt in .git / config hinzuzufügen ? Das heißt, ist "aktuell" hier ein besonderes Wort? Oder wird nach einem Zweig namens "current" gesucht?git push -u origin feature_branch_name
Upstream / Tracking einrichten! Wenn Sie mindestens ein Remote-Repository verwenden.Sie sollten sich eine ähnliche Frage im Standardverhalten von "git push" ohne Angabe eines Zweigs ansehen
Grundsätzlich wird erklärt, wie Sie das Standardverhalten festlegen, um den gerade ausgeführten aktuellen Zweig zu pushen
git push
. Wahrscheinlich brauchen Sie:git config --global push.default current
Andere Optionen:
quelle
Ich verwende einen solchen Alias in meiner .bashrc-Konfiguration
Auf dem Befehl
$gpb
nimmt es den aktuellen Zweignamen und schiebt ihn zum Ursprung.Hier sind meine anderen Aliase:
quelle
Für das, was es wert ist, die ultimative Abkürzung:
In meinem habe
.bash_profile
ichalias push="git push origin HEAD"
, also wennpush
ich tippe, weiß ich, dass ich zum aktuellen Zweig drücke, in dem ich mich befinde.quelle
Wenn Sie git 1.7.x verwenden, können Sie den folgenden Befehl ausführen, um den Remote-Tracking-Zweig festzulegen.
Dann können Sie einfach
git push
alle Änderungen verwenden. Eine vollständigere Antwort finden Sie in der akzeptierten Antwort auf eine ähnliche Frage hier.Wenn Sie den aktuellen Zweig nur mit dem Push-Befehl pushen möchten, können Sie das Push-Verhalten in Upstream ändern:
quelle
git config --global push.default upstream
Legt das Push-Verhalten so fest, dass nur der aktuelle Zweig gepusht wird.Der einfachste Weg:
git push -u origin feature/123-sandbox-tests
einmal ausführen . Dadurch wird der Zweig so verschoben, wie Sie es gewohnt sind, und die Upstream-Tracking-Informationen werden in Ihrer lokalen Konfiguration festgelegt. Danach können Siegit push
die verfolgten Zweige einfach auf ihre vorgelagerten Fernbedienungen übertragen.Sie können dies auch in der Konfiguration selbst tun, indem Sie
branch.<branch name>.merge
den Namen des Remote-Zweigs (in Ihrem Fall derselbe wie der lokale Name) und optionalbranch.<branch name>.remote
den Namen des Remote-Filters festlegen, auf den Sie pushen möchten (standardmäßig origin). Wenn Sie in Ihrer Konfiguration nachsehen, gibt es höchstwahrscheinlich bereits einen dieser Sätzemaster
, sodass Sie diesem Beispiel folgen können.push.default
Stellen Sie schließlich sicher, dass Sie die Einstellung berücksichtigen . Der Standardwert ist "Matching", was zu unerwünschten und unerwarteten Ergebnissen führen kann. Die meisten Leute, die ich kenne, finden "Upstream" intuitiver, was nur den aktuellen Zweig betrifft.Details zu jeder dieser Einstellungen finden Sie in der Manpage git-config .
Beim zweiten Gedanken, beim erneuten Lesen Ihrer Frage, denke ich, dass Sie das alles wissen. Ich denke, was Sie tatsächlich suchen, existiert nicht. Wie wäre es mit einer Bash-Funktion wie (ungetestet):
quelle
Mit Hilfe von Ceztkos Antwort habe ich diese kleine Hilfsfunktion geschrieben, um mir das Leben zu erleichtern:
Es verschiebt den aktuellen Zweig zum Ursprung und legt auch den Remote-Tracking-Zweig fest, falls dieser noch nicht eingerichtet wurde.
quelle