Pytanie Ostrzeżenie: push.default jest rozbrojony; jego domyślna wartość zmienia się w Git 2.0


Używam Git już od jakiegoś czasu i niedawno pobrałem aktualizację, aby znaleźć ten komunikat ostrzegawczy, gdy próbuję 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

Mogę oczywiście ustawić go na jedną z wymienionych wartości, ale co one oznaczają? Jaka jest różnica pomiędzy simple i matching?

Jeśli zmienię to na jednym kliencie, czy będę musiał zrobić cokolwiek na innych klientach, z którymi dzielę się repozytoriami?


1575
2017-10-30 21:48


pochodzenie


stackoverflow.com/questions/948354/git-push-current-branch - gliptak
stackoverflow.com/a/948397/1841194 - Hi I'm Frogatto
Uwaga: git 2.8 (marzec 2016) usunie to ostrzeżenie! Widzieć stackoverflow.com/a/22356644/6309 - VonC


Odpowiedzi:


Zostało to szczegółowo wyjaśnione w doktorzy, ale spróbuję podsumować:

  • matching znaczy git push będzie popchnij wszystkie swoje lokalne oddziały do tych o tej samej nazwie na pilocie. Ułatwia to przypadkowe naciśnięcie oddziału, którego nie zamierzałeś.

  • simple znaczy git push będzie popchnij tylko bieżącą gałąź do tej, która git pull wyciągnę z, a także sprawdza, czy ich nazwy pasują do siebie. Jest to bardziej intuicyjne zachowanie, dlatego domyślnie zmienia się na to.

To ustawienie wpływa tylko na zachowanie lokalnego klienta i może zostać nadpisane przez jawne określenie gałęzi, które chcesz wypchnąć z wiersza poleceń. Inni klienci mogą mieć różne ustawienia, wpływa tylko na to, co się dzieje, gdy nie określisz gałęzi, które chcesz wypchnąć.


2120
2017-10-30 22:11



Cieszę się, że znam tę zmianę. Kiedy byłem nowy w git, przypadkowo popchnąłem wszystkie lokalne oddziały myślące git push popchnie tylko bieżącą gałąź. - rahul286
Motywem jest to, że empirycznie najbardziej oczekują nowego domyślnego zachowania - Blake Miller
Byłoby o wiele lepiej mieć twoje cudownie przejrzyste podsumowanie w samym komunikacie ostrzegawczym, niż instrukcję nakazującą nam otworzyć dokumentację i wyszukać ciąg znaków. - hertzsprung
"Jest to bardzo dokładnie wyjaśnione w dokumentach" Pewnie, że jeśli trafisz na odpowiednią stronę, to jednak instrukcja dla git push nawet nie ma wzmianki o tym słowie prosty , prawdopodobnie dlatego tak wiele osób znalazło się tutaj. - Gerry
podsumowanie młotka jest dużo bardziej zwięzłym wyjaśnieniem niż dokumentacja git. - AJ.


Zdaję sobie sprawę, że jest to stary post, ale ponieważ właśnie wpadłem na ten sam problem i miałem problem ze znalezieniem odpowiedzi, myślałem, że dodam trochę.

Tak więc odpowiedź @ hammar jest poprawna. Za pomocą push.default simple w pewnym sensie przypomina konfigurację śledzenia w swoich oddziałach, więc nie trzeba określać zdalnych i oddziałów podczas przesuwania i przeciągania. The matching opcja przesunie wszystkie gałęzie do odpowiadających im odpowiedników na domyślnym pilocie (który jest pierwszym, który został skonfigurowany, chyba że skonfigurowałeś repo w inny sposób).

Jedną rzeczą, której inni mogą się przydać w przyszłości, jest to, że korzystałem z Git 1.8 na OS X Mountain Lion i nigdy nie widziałem tego błędu. Aktualizacja do Mavericks sprawiła, że ​​nagle się pojawiła (działa git --version pokaże git version 1.8.3.4 (Apple Git-47) którego nigdy nie widziałem, aż do aktualizacji systemu operacyjnego.


19
2017-10-26 17:00



Też zacząłem widzieć to po aktualizacji do Mavericks. Sądzę więc, że Git został ulepszony w tym samym czasie co Mavericks, tak jak sugerujesz. - Per Lundberg


Jeśli dostaniesz wiadomość od git narzekającą na wartość simple w konfiguracji sprawdź swój git version.

Po aktualizacji XCode (na Mac bieganie Mountain Lion), który również został ulepszony git od 1.7.4.4 do 1.8.3.4, powłoki uruchomione przed aktualizacją nadal działały git 1.7.4.4 i narzekali na wartość simple dla push.default w globalnej konfiguracji.

Rozwiązaniem było zamknięcie powłok działających w starej wersji git i użyj nowej wersji!


7
2018-01-31 15:35



Używam świeżej instalacji Xcode (git to wersja 1.8.5.2) i nadal miałem ten błąd, dopóki nie uruchomiłem: git config --global push.default simple - Sam-Graham


Zastanawiam się, dlaczego otrzymałem ten duży komunikat ostrzegawczy na Ubuntu 16.04 (który jest dostarczany z Git 2.7.4), ale nie na Arch Linux. Powodem jest to, że ostrzeżenie zostało usunięte w Git 2.8 (Marzec 2016):

W trakcie przejścia na wersję Git w wersji 2.0 używał tego użytkownik   uzyskać dość głośne ostrzeżenie podczas uruchamiania "git push" bez ustawienia   Zmienna konfiguracyjna push.default. Nie ostrzegamy już, ponieważ   przejście zostało zakończone dawno temu.

Więc nie zobaczysz ostrzeżenia, jeśli masz Git 2.8 i nowsze i nie musisz ustawiać push.default chyba że chcesz zmienić domyślną 'simple' zachowanie.


1
2018-03-19 13:10