Как получить git diff с полным контекстом?
Как создать патч, подходящий для просмотра в тигле?
git diff branch master --no-prefix > patch
Это генерирует только 3 строки контекста. Поэтому я делаю следующее
git diff --unified=2000 branch master --no-prefix > patch
Надеемся, что все файлы будут иметь менее 2000 строк. Есть ли способ сообщить git включить все строки в файл для патча без указания максимальных строк?
Ответы
Ответ 1
Я знаю, что это старо, но мне также не нравятся жестко закодированные решения, поэтому я протестировал это:
git diff -U$(wc -l MYFILE)
Использование -U кажется единственным способом приблизиться к проблеме, но с использованием подсчета строк promises, что он будет работать даже для небольшого изменения в очень большом файле.
Ответ 2
Это кажется очень приятным:
git diff --no-prefix -U1000
С оговоркой:
Флаг -U
указывает линии контекста. Возможно, вам придется увеличить это, если между вашими изменениями будет более 1000 строк.
Ответ 3
Примечание: git1.8.1rc1 анонс (8 декабря 2012 г.) включает в себя:
Новая конфигурация " diff.context
" может использоваться для предоставления по умолчанию числа строк контекста в выходном патче для переопределения жестко заданного по умолчанию трех строк.
чтобы помочь здесь создать более полный контекст.
Ответ 4
Это сработало для меня в Mac OS:
git diff -U$(wc -l main.htm | xargs)
см. Как обрезать пробелы из переменной Bash?