Câu hỏi Cảnh báo: push.default không được đặt; giá trị ngầm của nó đang thay đổi trong Git 2.0


Tôi đã sử dụng Git một thời gian và gần đây đã tải xuống bản cập nhật chỉ để tìm thông báo cảnh báo này xuất hiện khi tôi cố gắng 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

Tôi rõ ràng có thể đặt nó thành một trong những giá trị được đề cập, nhưng chúng có ý nghĩa gì? Sự khác biệt giữa simple và matching?

Nếu tôi thay đổi nó trên một khách hàng tôi sẽ cần phải làm bất cứ điều gì trên các khách hàng khác mà tôi chia sẻ repos với?


1575
2017-10-30 21:48


gốc


stackoverflow.com/questions/948354/git-push-current-branch - gliptak
stackoverflow.com/a/948397/1841194 - Hi I'm Frogatto
Lưu ý: git 2.8 (tháng 3 năm 2016) sẽ xóa cảnh báo đó! Xem stackoverflow.com/a/22356644/6309 - VonC


Các câu trả lời:


Nó được giải thích chi tiết trong tài liệu, nhưng tôi sẽ cố tóm tắt:

  • matching có nghĩa git push sẽ đẩy tất cả các chi nhánh địa phương của bạn cho những người có cùng tên trên điều khiển từ xa. Điều này làm cho nó dễ dàng vô tình đẩy một chi nhánh bạn không có ý định.

  • simple có nghĩa git push sẽ chỉ đẩy nhánh hiện tại vào nhánh git pull sẽ kéo từvà cũng kiểm tra xem tên của họ có khớp không. Đây là một hành vi trực quan hơn, đó là lý do tại sao mặc định là nhận được thay đổi này.

Cài đặt này chỉ ảnh hưởng đến hành vi của ứng dụng khách cục bộ của bạn và có thể bị ghi đè bằng cách chỉ định rõ các nhánh bạn muốn đẩy vào dòng lệnh. Các khách hàng khác có thể có các cài đặt khác nhau, nó chỉ ảnh hưởng đến những gì xảy ra khi bạn không chỉ định nhánh nào bạn muốn đẩy.


2120
2017-10-30 22:11



Vui mừng khi biết sự thay đổi này. Khi tôi mới đến git, tôi vô tình đẩy tất cả các ngành địa phương suy nghĩ git push sẽ chỉ đẩy nhánh hiện tại. - rahul286
Động cơ là, theo kinh nghiệm, hầu hết mong đợi hành vi mặc định mới - Blake Miller
Sẽ tốt hơn nếu bạn có bản tóm tắt tuyệt vời trong bản thân thông điệp cảnh báo, thay vì chỉ dẫn cho chúng tôi mở tài liệu và tìm kiếm một chuỗi. - hertzsprung
"Nó được giải thích rất rõ ràng trong các tài liệu" Chắc chắn nó là nếu bạn kết thúc trên trang bên phải, tuy nhiên hướng dẫn sử dụng cho git push thậm chí không có đề cập đến từ đơn giản , có lẽ là rất nhiều người đã đến đây thay vào đó. - Gerry
Tóm tắt của hammar là một lời giải thích ngắn gọn hơn nhiều so với các tài liệu git. - AJ.


Tôi nhận ra đây là một bài viết cũ nhưng khi tôi chỉ chạy vào cùng một vấn đề và gặp khó khăn trong việc tìm kiếm câu trả lời tôi nghĩ tôi sẽ thêm một chút.

Vì vậy, câu trả lời của @ hammar là chính xác. Sử dụng push.default simple theo một cách nào đó, như định cấu hình theo dõi trên các nhánh của bạn, do đó bạn không cần chỉ định điều khiển từ xa và các nhánh khi đẩy và kéo. Các matching tùy chọn sẽ đẩy tất cả các chi nhánh đến các đối tác tương ứng của chúng trên điều khiển từ xa mặc định (đây là tùy chọn đầu tiên được thiết lập trừ khi bạn đã định cấu hình repo của mình theo cách khác).

Một điều tôi hy vọng những người khác thấy hữu ích trong tương lai là tôi đang chạy Git 1.8 trên OS X Mountain Lion và không bao giờ thấy lỗi này. Nâng cấp lên Mavericks là những gì đột nhiên làm cho nó hiển thị (chạy git --version sẽ hiển thị git version 1.8.3.4 (Apple Git-47) mà tôi chưa bao giờ thấy cho đến khi cập nhật lên hệ điều hành.


19
2017-10-26 17:00



Tôi cũng bắt đầu thấy điều này sau khi nâng cấp lên Mavericks. Vì vậy, tôi đoán Git đã được nâng cấp cùng lúc với Mavericks, giống như bạn đang ngụ ý. - Per Lundberg


Nếu bạn nhận được một tin nhắn từ git phàn nàn về giá trị simple trong cấu hình, hãy kiểm tra git version.

Sau khi nâng cấp XCode (trên một Mac đang chạy Mountain Lion), cũng đã nâng cấp git từ 1.7.4.4 đến 1.8.3.4, hệ vỏ bắt đầu trước khi nâng cấp vẫn chạy git 1.7.4.4 và phàn nàn về giá trị simple cho push.default trong cấu hình chung.

Giải pháp là để đóng vỏ chạy phiên bản cũ của git và sử dụng phiên bản mới!


7
2018-01-31 15:35



Tôi đang sử dụng một cài đặt Xcode tươi (git là phiên bản 1.8.5.2) và tôi vẫn còn có lỗi này cho đến khi tôi chạy: git config --global push.default simple - Sam-Graham


Tôi đã tự hỏi tại sao tôi đã nhận được thông báo cảnh báo lớn trên Ubuntu 16.04 (đi kèm với Git 2.7.4), nhưng không phải trên Arch Linux. Lý do là cảnh báo đã bị xóa Git 2.8 (Tháng 3 năm 2016):

Trong suốt quá trình chuyển đổi xung quanh phiên bản Git 2.0, người dùng đã từng   nhận được cảnh báo khá lớn khi chạy "git push" mà không cần cài đặt   biến cấu hình push.default. Chúng tôi không còn cảnh báo vì   quá trình chuyển đổi đã được hoàn thành từ lâu.

Vì vậy, bạn sẽ không thấy cảnh báo nếu bạn có Git 2.8 trở lên và không cần phải đặt push.default trừ khi bạn muốn thay đổi mặc định 'simple' hành vi.


1
2018-03-19 13:10