Kısa cevap
Açıkça konuşmayı ve -ugerektiğinde seçeneği kullanmayı seviyorsanız , ancak tamamını yazmak istemiyorsanız:
git push -u origin foo
Ardından aşağıdaki takma adı kullanabilirsiniz:
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
Ve basitçe şunu yazın:
git push-u
Uzun cevap
Tipik olarak, -u(kısaltması) için ihtiyaç, --set-upstreamyeni bir yerel şube ve commit oluşturduğumuz ve bunu yukarı akışa itmek istediğimiz zamandır. Uzak depoda henüz yeni dal yok, bu yüzden git'e commit'i zorlamadan önce uzak dalı oluşturmasını ve izlemesini söylememiz gerekiyor. Bu, yalnızca daldaki ilk itme için gereklidir. İşte tipik bir senaryo:
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
Şahsen, git push -uuzak şubeyi oluştururken açık olma ihtiyacını seviyorum : dünyaya yepyeni bir şubeyi paylaşan oldukça önemli bir işlem.
Ancak, açıkça yazmak zorunda olmamızdan nefret ediyorum git push -u origin foo. Sadece yazmak için bir acı değil, daha da önemlisi, hataya oldukça açık! Şube adını yazarken hata yapmak kolaydır ve yeni uzak şubenin adı yerel şubenizle aynı olmayacaktır! Çoğu durumda, gerçekten, yukarı akış havuzununorigin ve yukarı akış şubesinin yerel şubenizle aynı ada sahip .
Bu nedenle, Mark tarafından sağlanan.gitconfig mükemmel cevabın bir alt kümesi olan my'de aşağıdaki takma adı kullanıyorum :
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
Şimdi, hala açık olan ancak hataya daha az meyilli olan aşağıdakileri yapabiliriz:
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.defaultvebranch.<name>.mergeseçeneklerini kullanmanın mümkün olup olmadığını kontrol ettiniz mi?