Pertanyaan Peringatan: push.default tidak disetel; nilai implisitnya berubah dalam Git 2.0


Saya telah menggunakan Git untuk sementara waktu sekarang dan baru saja mengunduh pembaruan hanya untuk menemukan pesan peringatan ini muncul ketika saya mencoba push.

warning: push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use: 

  git config --global push.default simple

Saya dapat dengan jelas mengaturnya ke salah satu nilai yang disebutkan, tetapi apa artinya? Apa perbedaannya simple dan matching?

Jika saya mengubahnya pada satu klien, apakah saya perlu melakukan apa pun pada klien lain yang saya bagikan dengan repositori?


1574
2017-10-30 21:48


asal


Jawaban:


Ini dijelaskan dengan sangat rinci di dokumen, tetapi saya akan mencoba merangkumnya:

  • matching cara git push akan dorong semua cabang lokal Anda ke orang-orang dengan nama yang sama di remote. Ini memudahkan untuk secara tidak sengaja mendorong cabang yang tidak Anda inginkan.

  • simple cara git push akan Dorong hanya cabang saat ini ke salah satu itu git pull akan menarik dari, dan juga memeriksa bahwa nama mereka cocok. Ini adalah perilaku yang lebih intuitif, itulah sebabnya default berubah menjadi ini.

Pengaturan ini hanya mempengaruhi perilaku klien lokal Anda, dan dapat ditimpa dengan secara eksplisit menentukan cabang mana yang ingin Anda dorong pada baris perintah. Klien lain dapat memiliki pengaturan yang berbeda, itu hanya memengaruhi apa yang terjadi ketika Anda tidak menentukan cabang mana yang ingin Anda dorong.


2119
2017-10-30 22:11



Saya menyadari ini adalah posting lama tetapi karena saya hanya berlari ke masalah yang sama dan kesulitan menemukan jawaban saya pikir saya akan menambahkan sedikit.

Jawaban So @ hammar benar. Menggunakan push.default simple adalah, dengan cara, seperti mengkonfigurasi pelacakan di cabang Anda sehingga Anda tidak perlu menentukan remote dan cabang ketika mendorong dan menarik. Itu matching pilihan akan mendorong semua cabang ke rekan yang sesuai pada remote default (yang merupakan yang pertama yang diatur kecuali Anda telah mengkonfigurasi repo Anda sebaliknya).

Satu hal yang saya harap orang lain akan berguna di masa depan adalah saya menjalankan Git 1.8 pada OS X Mountain Lion dan tidak pernah melihat kesalahan ini. Upgrade ke Mavericks adalah apa yang tiba-tiba membuatnya muncul (berlari git --version akan muncul git version 1.8.3.4 (Apple Git-47) yang belum pernah saya lihat sampai pembaruan ke OS.


19
2017-10-26 17:00



Jika Anda mendapat pesan dari git yang mengeluh tentang nilainya simple dalam konfigurasi, periksa git version.

Setelah meningkatkan XCode (pada suatu Mac berlari Mountain Lion), yang juga ditingkatkan git dari 1.7.4.4 untuk 1.8.3.4, shell dimulai sebelum upgrade masih menjalankan git 1.7.4.4 dan mengeluh tentang nilainya simple untuk push.default di konfigurasi global.

Solusinya adalah menutup shell yang menjalankan versi lama git dan gunakan versi baru!


7
2018-01-31 15:35



Saya bertanya-tanya mengapa saya mendapatkan pesan peringatan besar di Ubuntu 16.04 (yang datang dengan Git 2.7.4), tetapi tidak di Arch Linux. Alasannya adalah bahwa peringatan itu dihapus Git 2.8 (Maret 2016):

Di seberang transisi di sekitar Git versi 2.0, pengguna digunakan untuk   dapatkan peringatan yang cukup keras saat menjalankan "git push" tanpa pengaturan   variabel konfigurasi push.default. Kami tidak lagi memperingatkan karena   transisi telah selesai sejak lama.

Jadi Anda tidak akan melihat peringatan jika Anda memiliki Git 2.8 dan yang lebih baru dan tidak perlu disetel push.default kecuali Anda ingin mengubah default 'simple' tingkah laku.


1
2018-03-19 13:10