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

1623

Saya telah menggunakan Git untuk sementara waktu sekarang dan baru-baru ini 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 jelas dapat mengaturnya ke salah satu nilai yang disebutkan, tetapi apa artinya? Apa perbedaan antara simpledan matching?

Jika saya mengubahnya pada satu klien, apakah saya perlu melakukan sesuatu pada klien lain yang saya bagikan repo?

Marko
sumber
1
Catatan: git 2.8 (Maret 2016) akan menghapus peringatan itu! Lihat stackoverflow.com/a/22356644/6309
VonC

Jawaban:

2148

Ini dijelaskan dengan sangat terperinci dalam dokumen , tetapi saya akan mencoba meringkas:

  • matchingberarti git pushakan mendorong semua cabang lokal Anda ke yang dengan nama yang sama di remote. Ini memudahkan Anda mendorong cabang yang tidak sengaja Anda tuju.

  • simpleberarti git pushakan mendorong hanya cabang saat ini ke cabang yang git pullakan ditarik , dan juga memeriksa apakah nama mereka cocok. Ini adalah perilaku yang lebih intuitif, itulah sebabnya standar diubah untuk ini.

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

hammar
sumber
16
Senang mengetahui perubahan ini. Ketika saya baru git, saya tidak sengaja mendorong semua cabang lokal berpikir git pushhanya akan mendorong cabang saat ini.
rahul286
51
Motifnya adalah bahwa, secara empiris, sebagian besar mengharapkan perilaku default baru
Blake Miller
125
Akan jauh lebih baik untuk memiliki ringkasan Anda yang sangat jelas dalam pesan peringatan itu sendiri, daripada instruksi yang memberitahu kami untuk membuka dokumentasi dan mencari string.
hertzsprung
116
"Ini dijelaskan dengan sangat jelas di dokumen" Tentu saja jika Anda berakhir di halaman yang tepat, namun manual untuk git push bahkan tidak menyebutkan kata sederhana , yang mungkin adalah orang yang berakhir di sini sebagai gantinya. .
Gerry
36
Ringkasan hammar adalah penjelasan yang jauh lebih ringkas daripada git docs.
AJ.
19

Saya menyadari ini adalah posting lama tetapi karena saya baru saja mengalami masalah yang sama dan kesulitan menemukan jawabannya saya pikir saya akan menambahkan sedikit.

Jadi jawaban @ hammar benar. Menggunakannya push.default simple, dengan cara tertentu, seperti mengonfigurasi pelacakan di cabang Anda sehingga Anda tidak perlu menentukan remote dan cabang saat mendorong dan menarik. The matchingpilihan akan mendorong semua cabang dengan rekan-rekan mereka yang sesuai pada standar remote (yang merupakan yang pertama yang didirikan kecuali Anda telah dikonfigurasi repo Anda sebaliknya).

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

wgp
sumber
2
Saya juga mulai melihat ini setelah memutakhirkan ke Mavericks. Jadi saya kira Git ditingkatkan pada saat yang sama dengan Mavericks, seperti yang Anda maksudkan.
Per Lundberg
8

Jika Anda mendapatkan pesan dari git yang mengeluh tentang nilai simpledalam konfigurasi, periksa git version.

Setelah melakukan upgrade XCode(saat Macberjalan Mountain Lion), yang juga ditingkatkan gitdari 1.7.4.4 ke 1.8.3.4 , shell dimulai sebelum upgrade masih berjalan git 1.7.4.4 dan mengeluh tentang nilai simpleuntuk push.default dalam konfigurasi global.

Solusinya adalah dengan menutup shell yang menjalankan versi lama gitdan menggunakan versi baru!

Tom Barron
sumber
13
Saya menggunakan instalasi Xcode baru (git adalah versi 1.8.5.2) dan saya masih mengalami kesalahan ini sampai saya berlari:git config --global push.default simple
Sam-Graham
2

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 di Git 2.8 (Maret 2016):

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

Jadi Anda tidak akan melihat peringatan jika Anda memiliki Git 2.8 dan yang lebih baru dan tidak perlu mengatur push.defaultkecuali Anda ingin mengubah 'simple'perilaku default .

Eugene Yarmash
sumber