Jawaban singkat
Jika Anda benar-benar ingin eksplisit dan menggunakan -uopsi bila perlu, tetapi tidak ingin mengetik seluruhnya:
git push -u origin foo
Kemudian Anda dapat menggunakan alias berikut:
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
Dan cukup ketik:
git push-u
Jawaban panjang
Biasanya, kebutuhan -u(singkatan untuk --set-upstream) adalah ketika kita baru saja membuat cabang lokal baru dan melakukan, dan kita ingin mendorongnya ke atas. Repositori jarak jauh belum memiliki cabang baru, jadi kita perlu memberi tahu git untuk membuat dan melacak cabang jarak jauh sebelum mendorong komit. Ini hanya diperlukan untuk dorongan pertama di cabang. Berikut skenario tipikal:
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
Secara pribadi, saya suka kebutuhan untuk menjelaskan secara eksplisit git push -usaat membuat cabang jarak jauh: ini adalah operasi yang cukup signifikan, berbagi cabang baru ke dunia.
Namun, saya benci kita harus menulis secara eksplisit git push -u origin foo. Tidak hanya sulit untuk mengetik, tetapi yang lebih penting, ini cukup rawan kesalahan! Sangat mudah untuk membuat kesalahan saat mengetik nama cabang, dan cabang jarak jauh yang baru tidak akan memiliki nama yang sama dengan cabang lokal Anda! Dalam kebanyakan kasus, sebenarnya Anda ingin repositori upstream origin, dan cabang upstream memiliki nama yang sama dengan cabang lokal Anda.
Oleh karena itu, saya menggunakan alias berikut di my .gitconfig, yang merupakan bagian dari jawaban luar biasa yang diberikan oleh Mark :
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
Sekarang, kita dapat melakukan hal berikut, yang masih eksplisit, tetapi tidak terlalu rentan terhadap kesalahan:
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.defaultdanbranch.<name>.mergedi git-config (1) ?