Как получить 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" может использоваться для предоставления по умолчанию числа строк контекста в выходном патче для переопределения жестко заданного по умолчанию трех строк.

чтобы помочь здесь создать более полный контекст.