Как создать патч, пригодный для просмотра в тигле?
git diff branch master --no-prefix > patch
Это генерирует только 3 строки контекста. Итак, я делаю следующее
git diff --unified=2000 branch master --no-prefix > patch
Надеюсь, во всех файлах будет меньше 2000 строк. Есть ли способ указать git включить все строки в файл для патча без необходимости указывать максимальное количество строк?
Ответы:
Я знаю, что это устарело, но мне также не нравятся жестко запрограммированные решения, поэтому я протестировал это:
Использование -U кажется единственным способом решения проблемы, но использование подсчета строк обещает, что он будет работать даже для небольшого изменения в очень большом файле.
источник
<
не обязательно.git diff -U$(wc -l MYFILE) MYFILE
git diff -U$(wc -l MYFILE | awk '{print $1}') MYFILE
- лучший ответ, который правильно анализирует выводwc
, получая только количество строк без пробелов, не полагаясь на вывод подоболочки без кавычек для создания двух аргументов, и работает в macOS / BSD.Это , кажется, работает очень хорошо:
С оговоркой:
источник
-U
Вариант вы предлагаете такой же , как--unified=
вариант , используемого спрашивающей. Единственное отличие состоит в том, что вы указываете меньше строк контекста, 1000, чем использовавший запрос, 2000. @balki хотел знать, как увеличить число до бесконечности, но вы предлагаете сократить число вдвое. Зачем?git show
!--no-prefix
опция избавляется от префиксов назначения «/ a /» и «/ b /», которые отображаются по умолчанию. (связанная страница)Примечание. Объявление git1.8.1rc1 (8 декабря 2012 г.) включает:
так что это могло бы помочь здесь создать более полный контекст.
источник
Получил вдохновение, поэтому добавил псевдоним git.
Обновить:
Только что обнаруженный "git df" иногда не работает из-за изменения каталога при выполнении псевдонима git. (Смотрите, как псевдонимы git работают в неправильном каталоге ). Итак, это обновленная версия:
источник
Это сработало для меня на macOS:
см. «Как удалить пробелы в переменной Bash?»
источник
Ранее принятые решения не работают для меня при просмотре определенного файла / фиксации (эта
-U
опция, похоже, мешает синтаксическому анализу rev / path), но--inter-hunk-context=
работает в этом случае наgit version 2.24.0
:Если вы не знаете размер файла, вы, конечно, можете найти его
wc -l
вместо жесткого кодирования:источник