Saya sedang mengerjakan repositori git lokal. Ada dua cabang, master
dan feature_x
.
Saya ingin mendorong feature_x
repo jarak jauh, tetapi saya tidak ingin mendorong perubahan pada master
cabang.
Apakah a git push origin feature_x
dari feature_x
cabang saya ( feature_x
cabang sudah ada di remote) berfungsi?
Saya tidak ingin menguji ini pada kotak saya, karena saya tidak dapat mendorong untuk menguasai sekarang.
Jawaban:
ya, lakukan saja yang berikut ini
sumber
git push -u origin <branch-name>
. Namun Anda tidak menyebutkannya. Apakah itu perlu?-u
opsi padagit-push
perintah akan menetapkan referensi hulu untuk melacak cabang yang baru saja ditekan. Ini akan membuat hal-hal sepertigit-pull
pada cabang itu di masa depan sudah tahu cabang mana yang akan menarik tanpa menentukannya. Ini tidak diperlukan sebagai opsi untuk mendorong satu cabang, tetapi digunakan secara luas karena banyak orang ingin membuat cabang lokal melacak cabang terpencil yang mereka dorong.Secara default
git push
memperbarui semua cabang jarak jauh. Tetapi Anda dapat mengkonfigurasi git untuk memperbarui hanya cabang saat ini ke hulu.Itu berarti git akan memperbarui hanya cabang saat ini (dicentang) ketika Anda melakukan git push.
Pilihan lain yang valid adalah:
nothing
: Jangan mendorong apa pun (kesalahan keluar) kecuali jika refspec diberikan secara eksplisit . Ini terutama dimaksudkan untuk orang yang ingin menghindari kesalahan dengan selalu bersikap eksplisit.matching
: Dorong semua cabang dengan nama yang sama di kedua ujungnya. (opsi default sebelum Ver 1.7.11)upstream
: Dorong cabang saat ini ke cabang hulu. Mode ini hanya masuk akal jika Anda mendorong ke repositori yang sama yang biasanya Anda tarik (yaitu alur kerja sentral ). Tidak perlu memiliki nama yang sama untuk cabang lokal dan jauh.tracking
: Sudah usang, gunakanupstream
saja.current
: Dorong cabang saat ini ke cabang jarak jauh dengan nama yang sama di ujung penerima. Bekerja di alur kerja pusat dan non-sentral.simple
: [tersedia sejak Ver 1.7.11] dalam alur kerja terpusat, bekerja sepertiupstream
dengan keamanan tambahan untuk menolak mendorong jika nama cabang hulu berbeda dari yang lokal. Saat mendorong ke kendali jarak jauh yang berbeda dari jarak jauh yang biasanya Anda tarik, gunakan sebagaicurrent
. Ini adalah opsi teraman dan cocok untuk pemula. Mode ini telah menjadi default di Git 2.0.sumber
current
adalah apa yang saya cari, secara defaultgit push
difoo
cabang akan mendorongnya keorigin/foo
cabang.current
lebih masuk akal sebagai default.simple
lebih masuk akal sebagai default. Saya telah memperbarui jawabannya dengan 'kapan harus menggunakan apa'. Mohon lihat.simple
.Pembaruan kecil di atas jawaban Karthik Bose - Anda dapat mengonfigurasi git secara global, untuk memengaruhi semua ruang kerja Anda agar berperilaku seperti itu:
sumber
Jadi katakanlah Anda memiliki foo cabang lokal, asal yang disebut remote dan asal / master cabang jauh.
Untuk mendorong konten foo ke asal / master, Anda harus mengatur hulu:
Kemudian Anda bisa mendorong ke cabang ini menggunakan:
Pada perintah terakhir Anda dapat menambahkan --force untuk mengganti seluruh sejarah asal / master dengan yang dari foo.
sumber