Kurze Antwort
Wenn Sie tatsächlich explizit sein und die -uOption bei Bedarf verwenden möchten, aber nicht das Ganze eingeben möchten:
git push -u origin foo
Dann können Sie den folgenden Alias verwenden:
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
Und geben Sie einfach Folgendes ein:
git push-u
Lange Antwort
In der Regel besteht die Notwendigkeit für -u(Abkürzung für --set-upstream) darin, dass wir gerade eine neue lokale Niederlassung erstellt und festgeschrieben haben und diese vorab weiterleiten möchten. Das Remote-Repository verfügt noch nicht über den neuen Zweig. Daher müssen wir git anweisen, den Remote-Zweig zu erstellen und zu verfolgen, bevor wir das Commit ausführen. Dies ist nur für den ersten Druck auf den Zweig erforderlich. Hier ist ein typisches Szenario:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push -u origin foo # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
Persönlich mag ich die Notwendigkeit, git push -ubeim Erstellen des Remote-Zweigs explizit darauf einzugehen: Es ist ein ziemlich bedeutender Vorgang, der einen ganz neuen Zweig für die Welt freigibt.
Ich hasse es jedoch, dass wir explizit schreiben müssen git push -u origin foo. Das Tippen ist nicht nur schmerzhaft, sondern vor allem auch fehleranfällig! Es ist leicht, bei der Eingabe des Filialnamens einen Fehler zu machen, und die neue Remote-Filiale hat nicht den gleichen Namen wie Ihre lokale Filiale! In den meisten Fällen möchten Sie wirklich, dass das Upstream-Repository originund der Upstream-Zweig denselben Namen wie Ihr lokaler Zweig haben.
Daher verwende ich in meinem folgenden Alias .gitconfig, der eine Teilmenge der hervorragenden Antwort von Mark ist :
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
Jetzt können wir Folgendes tun, was immer noch explizit, aber weniger fehleranfällig ist:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push-u # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
push.defaultundbranch.<name>.mergein git-config (1) zu verwenden ?