Coba ini di alicerepositori Anda (sebelum mendorong):
git config push.default tracking
Atau, konfigurasikan sebagai default untuk pengguna Anda git config --global ….
git pushmemang default untuk originrepositori (yang biasanya repositori dari mana Anda mengkloning repositori saat ini), tapi itu tidak default untuk mendorong cabang saat ini — itu default untuk mendorong hanya cabang yang ada di repositori sumber dan repositori tujuan.
The push.defaultvariabel konfigurasi (lihat git-config (1) ) kontrol apa git pushakan mendorong bila tidak diberi “refspec” argumen (yaitu sesuatu setelah nama repositori). Nilai default memberikan perilaku yang dijelaskan di atas.
Berikut adalah nilai yang mungkin untuk push.default:
nothing
Ini memaksa Anda untuk memasok "refspec".
matching(default)
Ini mendorong semua cabang yang ada di repositori sumber dan repositori tujuan.
Ini sepenuhnya independen dari cabang yang saat ini sedang diperiksa.
upstreamatau tracking
(Kedua nilai berarti hal yang sama. Yang kemudian tidak digunakan lagi untuk menghindari kebingungan dengan cabang "pelacakan jarak jauh". Yang pertama diperkenalkan pada 1.7.4.2, jadi Anda harus menggunakan yang terakhir jika Anda menggunakan Git 1.7.3.1. )
Ini mendorong cabang saat ini ke cabang yang ditentukan oleh konfigurasi "hulu".
current
Ini mendorong cabang saat ini ke cabang dengan nama yang sama di repositori tujuan.
Dua yang terakhir ini berakhir menjadi sama untuk kasus-kasus umum (misalnya bekerja pada master lokal yang menggunakan asal / master sebagai hulu), tetapi mereka berbeda ketika cabang lokal memiliki nama yang berbeda dari cabang "hulu":
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
Dengan push.defaultsama dengan upstream(atau tracking), push akan pergi ke origin's induk cabang. Ketika itu sama dengan current, push akan pergi ke origin's quickfix cabang.
The matchingPengaturan akan memperbarui bare's Master dalam skenario Anda setelah telah ditetapkan. Untuk membangunnya, Anda bisa menggunakannya git push origin mastersekali.
Namun, upstreampengaturannya (atau mungkin current) sepertinya lebih cocok untuk apa yang Anda harapkan akan terjadi, jadi Anda mungkin ingin mencobanya:
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(Sekali lagi, jika Anda masih menggunakan Git sebelum 1.7.4.2, Anda harus menggunakan trackingbukan upstream).