Jak stworzyć łatkę nadającą się do recenzji w tyglu?
git diff branch master --no-prefix > patch
To generuje tylko 3 linie kontekstu. Więc robię co następuje
git diff --unified=2000 branch master --no-prefix > patch
Miejmy nadzieję, że wszystkie pliki będą miały mniej niż 2000 wierszy. Czy istnieje sposób, aby powiedzieć gitowi, aby uwzględnił wszystkie linie w pliku do łatania bez konieczności określania maksymalnej liczby wierszy?
Odpowiedzi:
Wiem, że to jest stare, ale nie lubię też rozwiązań zakodowanych na stałe, więc przetestowałem to:
Wydaje się, że użycie -U jest jedynym sposobem podejścia do problemu, ale użycie liczby wierszy obiecuje, że zadziała nawet przy niewielkiej zmianie w bardzo dużym pliku.
źródło
<
to nie jest konieczne.git diff -U$(wc -l MYFILE) MYFILE
git diff -U$(wc -l MYFILE | awk '{print $1}') MYFILE
jest lepszą odpowiedzią, która poprawnie analizuje wynik programuwc
, pobierając tylko liczbę wierszy bez białych znaków, nie polegając na niecytowanym wyniku podpowłoki w celu utworzenia dwóch argumentów i działa w systemie macOS / BSD.To wydaje się działać całkiem ładnie:
Z zastrzeżeniem:
źródło
-U
opcja jest taka sama, jak--unified=
opcja używana przez pytającego. Jedyną różnicą jest to, że podajesz mniej wierszy kontekstu, 1000, niż użyty asker 2000. @balki chciał wiedzieć, jak zwiększyć liczbę do nieskończoności, ale sugerujesz przecięcie liczby o połowę. Czemu?git show
!--no-prefix
opcja usuwa przedrostki miejsc docelowych „/ a /” i „/ b /”, które pojawiają się domyślnie. (strona połączona)Uwaga: ogłoszenie git1.8.1rc1 (8 grudnia 2012) zawiera:
to może pomóc tutaj w wygenerowaniu pełniejszego kontekstu.
źródło
Mam inspirację, więc dodałem alias git.
Aktualizacja:
Właśnie stwierdziłem, że „git df” czasami nie działa z powodu zmiany katalogu podczas wykonywania aliasu git. (Zobacz aliasy git działają w złym katalogu ). Więc to jest zaktualizowana wersja:
źródło
To zadziałało dla mnie na macOS:
zobacz „Jak wyciąć spacje ze zmiennej Bash?”
źródło
Wcześniej zaakceptowane rozwiązania nie działają dla mnie podczas przeglądania określonego pliku / zatwierdzenia (
-U
opcja wydaje się kłopotać z analizowaniem rev / path), ale--inter-hunk-context=
działa w tym przypadku nagit version 2.24.0
:Jeśli nie znasz rozmiaru pliku, możesz go oczywiście znaleźć za pomocą
wc -l
zamiast kodowania na stałe:źródło