АнглийскийФранцузскийИспанский

Значок OnWorks

git-diff - Интернет в облаке

Запустите git-diff в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда git-diff, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


git-diff - Показать изменения между коммитами, коммитом и рабочим деревом и т. д.

СИНТАКСИС


мерзавец Разница [параметры] [ ] [-] [ ...]
мерзавец Разница [параметры] --cached [ ] [-] [ ...]
мерзавец Разница [параметры] [-] [ ...]
мерзавец Разница [параметры]
мерзавец Разница [параметры] [--no-index] [-]

ОПИСАНИЕ


Показать изменения между рабочим деревом и индексом или деревом, изменения между индексом
и дерево, изменения между двумя деревьями, изменения между двумя объектами blob или изменения
между двумя файлами на диске.

мерзавец Разница [--параметры] [--] [ ...]
Эта форма предназначена для просмотра изменений, внесенных вами относительно индекса (промежуточная область для
следующая фиксация). Другими словами, разница в том, что вы могли бы скажи Git дальше
добавить в индекс, но вы еще этого не сделали. Вы можете выполнить эти изменения, используя мерзавец
(1).

мерзавец Разница --no-index [--options] [-] [ ...]
Эта форма предназначена для сравнения двух указанных путей в файловой системе. Вы можете опустить
--no-index при запуске команды в рабочем дереве, управляемом Git, и в
хотя бы один из путей указывает за пределы рабочего дерева или при запуске команды
вне рабочего дерева, управляемого Git.

мерзавец Разница [--options] --cached [ ] [-] [ ...]
Эта форма предназначена для просмотра изменений, которые вы подготовили для следующего коммита относительно указанного
. Обычно вам нужно сравнение с последней фиксацией, поэтому, если вы этого не сделаете
давать , по умолчанию - HEAD. Если HEAD не существует (например, нерожденные ветви) и
не приводится, показывает все поэтапные изменения. --staged является синонимом --cached.

мерзавец Разница [--параметры] [-] [ ...]
Эта форма предназначена для просмотра изменений в вашем рабочем дереве относительно названного
. Вы можете использовать HEAD, чтобы сравнить его с последней фиксацией, или имя ветки для
сравните с кончиком другой ветки.

мерзавец Разница [--параметры] [-] [ ...]
Это для просмотра изменений между двумя произвольными .

мерзавец Разница [--параметры] .. [-] [ ...]
Это синоним предыдущей формы. Если с одной стороны опущено, это будет
имеют тот же эффект, что и использование HEAD.

мерзавец Разница [--параметры] ... [-] [ ...]
Эта форма предназначена для просмотра изменений в ветке, содержащей и до второй
, начиная с общего предка обоих . "git diff A ... B" - это
эквивалентно «git diff $ (git-merge-base AB) B». Вы можете опустить любой из ,
который имеет тот же эффект, что и использование HEAD.

На всякий случай, если вы занимаетесь экзотикой, следует отметить, что все
в приведенном выше описании, за исключением двух последних форм, в которых используются обозначения "..",
может быть любым .

Для более полного списка способов написания см. раздел «УКАЗАНИЕ ИЗМЕНЕНИЙ» в
gitrevisions(7). Однако "diff" - это сравнение двух конечные точки, а не диапазоны, а
обозначения диапазонов (" .. " а также " ... ") не означает диапазон, поскольку
определены в разделе «УКАЗАНИЕ ДИАПАЗОНОВ» в gitrevisions(7).

мерзавец Разница [параметры]
Эта форма предназначена для просмотра различий между необработанным содержимым двух объектов blob.

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


-р, -у, --патч
Сгенерировать патч (см. Раздел о создании патчей). Это значение по умолчанию.

-s, --no-патч
Подавить вывод diff. Полезно для таких команд, как git show, которые показывают патч от
по умолчанию или для отмены эффекта --patch.

-U , --unified =
Создавайте различия с помощью строки контекста вместо обычных трех. Подразумевает -p.

--сырой
Сгенерируйте разницу в необработанном формате.

--patch-with-raw
Синоним -p --raw.

- минимальный
Потратьте дополнительное время на то, чтобы получить минимально возможную разницу.

--терпение
Сгенерируйте различие, используя алгоритм "терпения различий".

- гистограмма
Сгенерируйте разницу, используя алгоритм "гистограммы сравнения".

--diff-algorithm = {терпение | минимальная | гистограмма | myers}
Выберите алгоритм сравнения. Возможны следующие варианты:

по умолчанию, Майерс
Базовый жадный алгоритм сравнения. В настоящее время это значение по умолчанию.

минимальный
Потратьте дополнительное время на то, чтобы получить минимально возможную разницу.

терпение
При создании патчей используйте алгоритм "терпение различий".

Гистограмма
Этот алгоритм расширяет алгоритм терпения, чтобы «поддерживать редко встречающиеся общие
элементы ".

Например, если вы настроили для переменной diff.algorithm значение, отличное от значения по умолчанию, и
хотите использовать значение по умолчанию, тогда вам нужно использовать параметр --diff-algorithm = default.

--stat [= [, [, ]]]
Создайте diffstat. По умолчанию для
часть имени файла, а остальное - часть графа. По умолчанию максимальная ширина соответствует терминалу
ширина или 80 столбцов, если они не подключены к терминалу, и могут быть переопределены .
Ширину части имени файла можно ограничить, задав другую ширину
после запятой. Ширина графической части может быть ограничена с помощью
--stat-ширина-графика = (влияет на все команды, формирующие график статистики) или
установка diff.statGraphWidth = (не влияет на git format-patch). Давая
третий параметр , вы можете ограничить вывод первым линии, за которыми следуют
по ... если есть еще.

Эти параметры также можно установить индивидуально с помощью --stat-width = ,
--stat-имя-ширина = и --stat-count = .

--numstat
Аналогично --stat, но показывает количество добавленных и удаленных строк в десятичной системе счисления и
имя пути без сокращений, чтобы сделать его более удобным для машины. Для двоичных файлов
выводит два - вместо того, чтобы сказать 0 0.

--shortstat
Вывести только последнюю строку формата --stat, содержащую общее количество измененных
файлов, а также количество добавленных и удаленных строк.

--dirstat [= ]
Выведите распределение относительного количества изменений для каждого подкаталога. В
поведение --dirstat можно настроить, передав ему список разделенных запятыми
параметры. Значения по умолчанию контролируются конфигурационной переменной diff.dirstat.
(См. git-конфигурация(1)). Доступны следующие параметры:

изменения
Вычислите числа dirstat, посчитав строки, которые были удалены из
источник или добавлен в место назначения. Это игнорирует количество чистого кода
движения внутри файла. Другими словами, перестановка строк в файле не
посчитал столько же, сколько и другие изменения. Это поведение по умолчанию, когда нет параметра
дано.

линий
Вычислите числа dirstat, выполнив обычный линейный анализ различий, и
суммирование количества удаленных / добавленных строк. (Для двоичных файлов подсчитывайте 64-байтовые фрагменты.
вместо этого, поскольку двоичные файлы не имеют естественного представления о строках). Это более
дорого --dirstat behavior, чем изменение поведения, но это учитывается
переставил строки в файле так же, как и другие изменения. В результате получается
в соответствии с тем, что вы получаете от других - * параметров статистики.

файлов
Вычислите числа dirstat, посчитав количество измененных файлов. Каждый изменился
файл одинаково учитывается при анализе dirstat. Это самый дешевый с точки зрения вычислений
--dirstat, так как ему вообще не нужно просматривать содержимое файла.

кумулятивный
Подсчитайте изменения в дочернем каталоге и для родительского каталога. Обратите внимание, что
при использовании кумулятивного значения сумма указанных процентов может превышать 100%. В
поведение по умолчанию (не кумулятивное) может быть указано с помощью некумулятивного
Параметр.


Целочисленный параметр указывает процент отсечения (по умолчанию 3%). Справочники
вносящие меньший, чем этот процент изменений, не отображаются в выходных данных.

Пример: следующее будет подсчитывать измененные файлы, игнорируя каталоги с меньшим
более 10% от общего количества измененных файлов, а количество дочерних каталогов накапливается.
в родительских каталогах: --dirstat = files, 10, кумулятивно.

--резюме
Вывести сжатую сводку расширенной информации заголовка, такой как создание, переименование
и изменения режима.

--patch-with-stat
Синоним -p --stat.

-z
Если задано --raw, --numstat, --name-only или --name-status, не изменяйте
имена путей и использовать NUL в качестве ограничителей выходных полей.

Без этой опции каждый выходной путь будет иметь TAB, LF, двойные кавычки и
символы обратной косой черты заменены на \ t, \ n, \ "и \\ соответственно, а имя пути
будут заключены в двойные кавычки, если произошла какая-либо из этих замен.

- имя-только
Показывать только имена измененных файлов.

--имя-статус
Показывать только имена и статус измененных файлов. См. Описание --diff-filter
вариант того, что означают статусные буквы.

- подмодуль [= ]
Укажите, как отображаются различия в подмодулях. Когда --submodule или --submodule = log
дано журнал формат используется. В этом формате перечислены коммиты в диапазоне вроде мерзавец
подмодуль(1) резюме. Пропуск опции --submodule или указание
--submodule = short, использует короткие формат. Этот формат просто показывает имена
фиксируется в начале и в конце диапазона. Можно настроить с помощью подмодуля diff.submodule
переменная конфигурация.

--color [= ]
Показать цветной diff. --color (т.е. без знак равно) совпадает с --color = always.
может быть всегда, никогда или авто. Его можно изменить с помощью color.ui и
Параметры конфигурации color.diff.

- бесцветный
Отключить цветной дифференциал. Это можно использовать для переопределения параметров конфигурации. Это
то же, что --color = never.

--word-diff [= ]
Покажите слово diff, используя для разграничения измененных слов. По умолчанию слова
разделены пробелами; см. --word-diff-regex ниже. В по умолчанию простой,
и должен быть одним из:

цвет
Выделите измененные слова, используя только цвета. Подразумевает --color.

простой
Показывать слова как [-removed-] и {+ added +}. Не предпринимает попыток избежать
разделители, если они присутствуют во входных данных, поэтому выходные данные могут быть неоднозначными.

фарфор
Используйте специальный построчный формат, предназначенный для использования скриптом.
Добавленные / удаленные / неизмененные прогоны печатаются в обычном унифицированном формате сравнения,
начиная с символа + / - / `` в начале строки и продолжая до
конец строки. Новые строки во вводе представлены тильдой ~ в строке
своих собственных.

нет
Снова отключите слово diff.

Обратите внимание, что, несмотря на название первого режима, цвет используется для выделения измененного
детали во всех режимах, если они включены.

--word-diff-regex =
Использовать чтобы решить, что такое слово, вместо того, чтобы рассматривать пробелы без пробелов, чтобы
быть словом. Также подразумевает --word-diff, если он еще не был включен.

Каждый неперекрывающийся матч считается словом. Что-нибудь между
эти совпадения считаются пробелами и игнорируются (!) в целях поиска
различия. Вы можете добавить | [^ [: space:]] к своему регулярному выражению, чтобы сделать
убедитесь, что он соответствует всем непробельным символам. Соответствие, содержащее новую строку,
молча обрезается (!) на новой строке.

Например, --word-diff-regex =. будет рассматривать каждый символ как слово и,
соответственно, отображать различия по характеру.

Регулярное выражение также можно установить с помощью драйвера diff или параметра конфигурации, см.
gitattributes(1) или git-конфигурация(1). Предоставление этого явно отменяет любой драйвер diff или
настройка конфигурации. Драйверы различий переопределяют параметры конфигурации.

--color-words [= ]
Эквивалентно --word-diff = color plus (если было указано регулярное выражение)
--word-diff-regex = .

--no-переименовывает
Отключите обнаружение переименования, даже если в файле конфигурации указано значение по умолчанию.
так.

--проверить
Предупреждать, если изменения приводят к ошибкам, связанным с пробелами. Ошибки, связанные с пробелами, считаются
контролируется конфигурацией core.whitespace. По умолчанию завершающие пробелы
(включая строки, состоящие исключительно из пробелов) и пробел,
сразу после символа табуляции внутри начального отступа строки
считается ошибкой пробелов. Выход с ненулевым статусом при обнаружении проблем. Нет
совместим с --exit-code.

--ws-error-highlight =
Выделите ошибки пробелов в строках, указанных в цвете, указанном
color.diff.whitespace. представляет собой список старого, нового контекста, разделенного запятыми. Когда
эта опция не указана, выделяются только ошибки пробелов в новых строках. Например
--ws-error-highlight = new, old выделяет ошибки пробелов как при удалении, так и при добавлении
линий. all может использоваться как сокращение для старого, нового контекста.

--полный индекс
Вместо первой горстки символов покажите полные капли до и после изображения.
имена объектов в строке "index" при генерации вывода в формате патча.

- двоичный
В дополнение к --full-index вывести двоичную разницу, которую можно применить с помощью git-apply.

--abbrev [= ]
Вместо отображения полного 40-байтового шестнадцатеричного имени объекта в выводе в формате diff-raw
и строки заголовка diff-tree показывают только частичный префикс. Это не зависит от
Опция --full-index выше, которая управляет выходным форматом diff-patch. Не по умолчанию
количество цифр можно указать с помощью --abbrev = .

-B [ ] [/ ], --break-rewrites [= [ ] [/ ]]
Разбейте полные изменения перезаписи на пары удаления и создания. Это служит двум
цели:

Это влияет на то, как изменение, которое сводится к полной перезаписи файла, а не как серия
удаления и вставки, смешанные вместе с очень несколькими строками, которые совпадают
текстуально как контекст, но как единственное удаление всего старого, за которым следует
однократная вставка всего нового, и число m управляет этим аспектом -B
вариант (по умолчанию 60%). -B / 70% указывает, что менее 30% оригинала должно
остаются в результате, чтобы Git считал его полностью переписанным (т. е. в противном случае
результирующий патч будет серией удалений и вставок, смешанных с контекстом
линии).

При использовании с -M полностью перезаписанный файл также считается источником
переименовать (обычно -M рассматривает только исчезнувший файл как источник переименования),
а число n управляет этим аспектом опции -B (по умолчанию 50%). -B20%
указывает, что изменение с добавлением и удалением по сравнению с 20% или более
размер файла может быть выбран как возможный источник переименования в
другой файл.

-M [ ], --find-renames [= ]
Обнаружение переименований. Если указано n, это порог индекса сходства (т. Е.
количество добавлений / удалений по сравнению с размером файла). Например, -M90% означает
Git должен рассматривать пару удаления / добавления как переименование, если более 90% файла
не изменилось. Без знака% число следует читать как дробь, с
десятичная точка перед ним. То есть -M5 становится 0.5 и, таким образом, совпадает с -M50%.
Точно так же -M05 совпадает с -M5%. Чтобы ограничить обнаружение точным переименованием, используйте -M100%.
Индекс подобия по умолчанию - 50%.

-C [ ], --find-copy [= ]
Обнаруживать копии, а также переименовывать. См. Также --find-copy-harder. Если указано n, оно
имеет то же значение, что и -M .

- найти-копии-сложнее
Из соображений производительности по умолчанию опция -C находит копии только в том случае, если исходный файл
копии были изменены в том же наборе изменений. Этот флаг заставляет команду проверять
немодифицированные файлы в качестве кандидатов в источник копии. Это очень дорого
для больших проектов, поэтому используйте его с осторожностью. Предоставление более одной опции -C
имеет тот же эффект.

-D, --необратимо-удалить
Пропускайте прообраз для удалений, то есть печатайте только заголовок, но не разницу между
preimage и / dev / null. Полученный патч не предназначен для применения с патчем или
git apply; это исключительно для людей, которые хотят просто сосредоточиться на просмотре
текст после изменения. Кроме того, в выходных данных явно не хватает информации, чтобы
применить такой патч в обратном порядке, даже вручную, отсюда и название опции.

При использовании вместе с -B опускать также прообраз в части удаления
удалить / создать пару.

-l
Опции -M и -C требуют времени обработки O (n ^ 2), где n - количество
потенциальные цели переименования / копирования. Эта опция предотвращает запуск обнаружения переименования / копирования
если количество целей переименования / копирования превышает указанное число.

--diff-filter = [(A | C | D | M | R | T | U | X | B) ... [*]]
Выберите только файлы, которые добавлены (A), скопированы (C), удалены (D), изменены (M), переименованы
(R), изменили их тип (например, обычный файл, символическая ссылка, подмодуль, ...) (T), являются
Не объединенные (U), Неизвестные (X) или их пара Сломана (B). Любая комбинация
из символов фильтра (в том числе ни одного) можно использовать. Когда добавлено * (Все или ничего)
к комбинации, все пути выбираются, если есть какой-либо файл, который соответствует другому
критерии сравнения; если нет файла, соответствующего другим критериям, ничего
.

-S
Ищите различия, которые изменяют количество вхождений указанной строки
(т.е. добавление / удаление) в файле. Предназначен для использования сценаристом.

Это полезно, когда вы ищете точный блок кода (например, структуру) и хотите
чтобы узнать историю этого блока с момента его появления: используйте функцию
итеративно передать интересный блок в прообразе обратно в -S и продолжить
пока не получите самую первую версию блока.

-ГРАММ
Ищите отличия, текст патча которых содержит добавленные / удаленные строки, соответствующие .

Чтобы проиллюстрировать разницу между -S --pickaxe-regex и -G , рассмотреть возможность
фиксация со следующей разницей в том же файле:

+ return! regexec (regexp, two-> ptr, 1, ®match, 0);
...
- hit =! regexec (regexp, mf2.ptr, 1, ®match, 0);

В то время как git log -G "regexec \ (regexp" покажет эту фиксацию, git log -S "regexec \ (regexp"
--pickaxe-regex не будет (потому что количество вхождений этой строки не
изменение).

Смотрите пост в киркомотыга вход в gitdiffcore(7) для получения дополнительной информации.

--pickaxe-все
Когда -S или -G находят изменение, показывать все изменения в этом наборе, а не только
файлы, содержащие изменение в .

--кирка-regex
Лечить передается -S как расширенное регулярное выражение POSIX для сопоставления.

-O
Выведите патч в порядке, указанном в , который имеет одну оболочку
узор в строке. Это отменяет конфигурационную переменную diff.orderFile (см. мерзавец
конфиг(1)). Чтобы отменить diff.orderFile, используйте -O / dev / null.

-R
Поменять местами два входа; то есть показать различия от индекса или файла на диске к дереву
содержание.

--relative [= ]
При запуске из подкаталога проекта можно указать исключить изменения вне
каталог и отображать пути относительно него с помощью этой опции. Когда тебя нет
подкаталог (например, в пустом репозитории), вы можете назвать подкаталог, который нужно сделать
выход относительно, задавая как аргумент.

-текст
Считайте все файлы текстовыми.

--ignore-space-at-eol
Игнорировать изменения пробелов в EOL.

-b, --игнорировать-пробел-изменение
Игнорировать изменения количества пробелов. Это игнорирует пробелы в конце строки и
считает все остальные последовательности одного или нескольких пробельных символов эквивалентными.

-w, --игнорировать все пробелы
Игнорируйте пробелы при сравнении строк. Это игнорирует различия, даже если в одной строке
пробел там, где его нет в другой строке.

--игнорировать пустые строки
Игнорировать изменения, все строки которых пусты.

--inter-hunk-context =
Показать контекст между блоками различий до указанного количества строк, тем самым
сплавление кусков, находящихся близко друг к другу.

-W, --функция-контекст
Показать все окружающие функции изменений.

--exit-код
Выполните выход из программы с кодами, похожими на Разница(1). То есть он выходит с 1, если есть
были различия, а 0 означает отсутствие различий.

--тихий
Отключите весь вывод программы. Подразумевается --exit-code.

--ext-diff
Разрешить выполнение внешнего помощника diff. Если вы установите внешний драйвер diff с
gitattributes(5), вам нужно использовать эту опцию с git-журнал(1) и друзья.

--no-ext-diff
Запретить внешние драйверы различий.

--текстконв, --но-текстконв
Разрешить (или запретить) запуск внешних фильтров преобразования текста при сравнении двоичных файлов
файлы. Видеть gitattributes(5) для подробностей. Поскольку фильтры textconv обычно
одностороннее преобразование, результирующая разница подходит для потребления человеком, но не может
применяться. По этой причине фильтры textconv по умолчанию включены только для мерзавец
Разница(1) и git-журнал(1), но не для git-формат-патч(1) или команды сантехники различий.

--ignore-submodules [= ]
Игнорировать изменения субмодулей при генерации различий. может быть либо «нет»,
"неотслеживаемый", "грязный" или "все" - значение по умолчанию. Использование "none" будет учитывать
подмодуль изменен, если он содержит неотслеживаемые или измененные файлы или его HEAD
отличается от фиксации, записанной в суперпроекте, и может использоваться для отмены любого
настройки игнорировать вариант в git-конфигурация(1) или gitmodules(5). Когда "неотслеживаемый"
используемые подмодули не считаются грязными, если они содержат только неотслеживаемый контент (но
они все еще сканируются на предмет измененного содержимого). Использование "dirty" игнорирует все изменения в
дерево работы подмодулей, сохраняются только изменения коммитов, хранящихся в суперпроекте.
показано (так было до версии 1.7.0). Использование "все" скрывает все изменения в
подмодули.

--src-prefix =
Показывать данный исходный префикс вместо "a /".

--dst-prefix =
Показывать префикс получателя вместо "b /".

- без префикса
Не показывать префиксы источника или назначения.

Для более подробного объяснения этих распространенных опций см. Также gitdiffcore(7).

...
В параметры, если они заданы, используются для ограничения различий указанными путями (вы
может давать имена каталогов и получать разницу для всех файлов в них).

RAW ВЫВОД ФОРМАТ


Необработанный выходной формат из "git-diff-index", "git-diff-tree", "git-diff-files" и "git
diff --raw "очень похожи.

Все эти команды сравнивают два набора вещей; что сравнивается отличается:

git-diff-index
сравнивает и файлы в файловой системе.

git-diff-index --cached
сравнивает и индекс.

git-diff-tree [-r] [ ...]
сравнивает деревья, названные двумя аргументами.

git-diff-files [ ...]
сравнивает индекс и файлы в файловой системе.

Команда "git-diff-tree" начинает вывод с вывода хэша того, что
в сравнении. После этого все команды выводят по одной строке вывода для каждого измененного файла.

Строка вывода форматируется следующим образом:

редактирование на месте: 100644 100644 bcd1234 ... 0123456 ... M file0
копировать-редактировать: 100644 100644 abcd123 ... 1234567 ... C68 файл1 файл2
переименовать-редактировать: 100644 100644 abcd123 ... 1234567 ... R86 файл1 файл3
создать: 000000 100644 0000000 ... 1234567 ... Файл4
удалить: 100644 000000 1234567 ... 0000000 ... D файл5
без объединения: 000000 000000 0000000 ... 0000000 ... U файл6

То есть слева направо:

1. толстая кишка.

2. режим для "src"; 000000, если создано или не объединено.

3. пробел.

4. режим "dst"; 000000 при удалении или без объединения.

5. пробел.

6. sha1 для "src"; 0 {40}, если создано или не объединено.

7. пробел.

8. sha1 для "dst"; 0 {40} в случае создания, без объединения или «посмотрите на дерево работ».

9. пробел.

10. статус, за которым следует необязательный номер «оценки».

11. табуляция или NUL, когда -z опция используется.

12. путь для "src"

13. табуляция или NUL, когда -z опция используется; существует только для C или R.

14. путь для "dst"; существует только для C или R.

15. LF или NUL, когда -z опция используется для прекращения записи.

Возможные статусные буквы:

· A: добавление файла

· C: копирование файла в новый

· D: удаление файла

· M: изменение содержимого или режима файла

· R: переименование файла

· T: изменение типа файла

· U: файл не объединен (вы должны завершить объединение, прежде чем его можно будет зафиксировать)

· X: "неизвестный" тип изменения (скорее всего, ошибка, сообщите об этом)

За статусными буквами C и R всегда следует оценка (обозначающая процентное соотношение
сходство между источником и целью перемещения или копии). Статусная буква M может быть
за которым следует оценка (обозначающая процент несходства) для перезаписи файлов.

отображается как все 1, если файл в файловой системе новый и не синхронизирован с
индекс.

Пример:

: 100644 100644 5be4a4 ...... 000000 ...... M file.c

Если опция -z не используется, в именах путей отображаются символы TAB, LF и обратная косая черта.
как \ t, \ n и \\ соответственно.

DIFF ФОРМАТ Для СЛИЯНИЯ


"git-diff-tree", "git-diff-files" и "git-diff --raw" могут принимать -c or --cc вариант
генерировать вывод diff также для коммитов слияния. Вывод отличается от описанного формата
выше следующим образом:

1. Для каждого родителя стоит двоеточие

2. есть еще режимы "src" и "src" sha1

3. статус - это конкатенированные символы статуса для каждого родителя.

4. нет необязательного «балльного» числа

5. одиночный путь, только для "dst"

Пример:

:: 100644 100644 100644 fabadb8 ... cc95eb0 ... 4866510 ... MM описать.c

Обратите внимание, что сочетании Разница перечисляет только файлы, которые были изменены всеми родителями.

ПОЛУЧЕНИЕ ПАТЧИ -P


Когда "git-diff-index", "git-diff-tree" или "git-diff-files" запускаются с -p вариант, "мерзавец
diff "без --сырой параметр или "git log" с параметром "-p", они не создают
вывод, описанный выше; вместо этого они создают файл исправления. Вы можете настроить создание
таких патчей через переменные среды GIT_EXTERNAL_DIFF и GIT_DIFF_OPTS.

Опция -p немного отличается от традиционного формата diff:

1. Ему предшествует заголовок "git diff", который выглядит следующим образом:

diff --git a / file1 b / file2

Имена файлов a / и b / одинаковы, если не используется переименование / копирование. Особенно даже
для создания или удаления / dev / null является используется вместо a / или b /
имена файлов.

Когда используется переименование / копирование, file1 и file2 показывают имя исходного файла
переименовать / скопировать и имя файла, который производит переименование / копирование, соответственно.

2. За ним следует одна или несколько расширенных строк заголовка:

старый режим
новый режим
режим удаленного файла
новый файловый режим
копировать из
скопировать в
переименовать из
переименовать в
индекс сходства
индекс несходства
показатель ..

Режимы файлов печатаются в виде шестизначных восьмеричных чисел, включая тип файла и файл.
биты разрешения.

Имена путей в расширенных заголовках не включают префиксы a / и b /.

Индекс сходства - это процент неизмененных линий, а индекс несходства
процент измененных строк. Это округленное целое число, за которым следует
знак процента. Таким образом, значение индекса сходства 100% зарезервировано для двух одинаковых файлов,
в то время как 100% несходство означает, что ни одна строка из старого файла не попала в новый
вариант.

Строка индекса включает контрольную сумму SHA-1 до и после изменения. В является
включается, если режим файла не меняется; в противном случае отдельные строки указывают на старый
и новый режим.

3. TAB, LF, двойные кавычки и обратная косая черта в именах путей представлены как \ t, \ n,
\ "и \\ соответственно. Если есть необходимость в такой замене, то весь
путь заключен в двойные кавычки.

4. Все файлы file1 в выводе относятся к файлам до фиксации, а все файлы file2
файлы относятся к файлам после фиксации. Неверно применять каждое изменение к каждому
файл последовательно. Например, этот патч поменяет местами a и b:

diff --git a / ab / b
переименовать из
переименовать в b
diff --git a / bb / a
переименовать из b
переименовать в

КОМБИНИРОВАННЫЙ DIFF ФОРМАТ


Любая команда генерации различий может принимать параметр -c или --cc для создания сочетании Разница когда
показывает слияние. Это формат по умолчанию при отображении слияний с git-diff(1) или мерзавец
произошел(1). Также обратите внимание, что вы можете указать опцию -m любой из этих команд, чтобы
генерация различий с отдельными родителями слияния.

A сочетании Разница формат выглядит так:

diff --combined описать.c
индекс fabadb8, cc95eb0..4866510
--- a / describe.c
+++ b / describe.c
@@@ -98,20 -98,12 +98,20 @@@
return (a_date> b_date)? -1: (a_date == b_date)? 0: 1;
}

- статическое описание void (char * arg)
-static void description (struct commit * cmit, int last_one)
++ статическое описание void (char * arg, int last_one)
{
+ беззнаковый символ sha1 [20];
+ struct commit * cmit;
struct commit_list * список;
статический int инициализирован = 0;
struct commit_name * n;

+ если (get_sha1 (arg, sha1) <0)
+ использование (describe_usage);
+ cmit = lookup_commit_reference (sha1);
+ если (! cmit)
+ использование (describe_usage);
+
if (! initialized) {
инициализировано = 1;
for_each_ref (get_name);

1. Ему предшествует заголовок "git diff", который выглядит следующим образом (когда -c опция
используемый):

diff --комбинированный файл

или как это (когда --cc вариант):

diff --cc файл

2. За ним следует одна или несколько расширенных строк заголовка (в этом примере показано слияние с
двое родителей):

показатель , ..
Режим , ..
новый файловый режим
режим удаленного файла ,

Режим , .. строка появляется только в том случае, если хотя бы один из является
отличается от остальных. Расширенные заголовки с информацией об обнаруженном содержимом
движение (переименование и обнаружение копирования) предназначены для работы с разницей двух
и не используются в комбинированном формате сравнения.

3. За ним следует двухстрочный заголовок из файла / в файл.

--- файл
+++ б / файл

Подобен двухстрочному заголовку для традиционного унифицированный формат diff, / dev / null используется для
сигнализировать о созданных или удаленных файлах.

4. Формат заголовка блока изменен, чтобы люди случайно не загрузили его в
патч -p1. Комбинированный формат сравнения был создан для просмотра изменений фиксации слияния и
не предназначен для подачи заявки. Изменение аналогично изменению в расширенном индекс
заголовок:

@@@ @@@

В заголовке блока для комбинированного сравнения есть (количество родителей + 1) символов @
формат.

В отличие от традиционных унифицированный diff, который показывает два файла A и B с одним
столбец, имеющий - (минус - появляется в A, но удален в B), + (плюс - отсутствует в A, но
добавлен к B) или префиксу "" (пробел - без изменений), этот формат сравнивает два или более файла
file1, file2, ... с одним файлом X и показывает, чем X отличается от каждого из fileN. Один столбец
для каждого из fileN добавляется к строке вывода, чтобы отметить, чем строка X отличается от
его.

Знак A в столбце N означает, что строка присутствует в файле N, но не отображается
в результате. Знак + в столбце N означает, что строка появляется в результате,
и fileN не имеет этой строки (другими словами, строка была добавлена ​​с точки
мнение этого родителя).

В выходных данных приведенного выше примера подпись функции была изменена из обоих файлов (следовательно, два
- удаления как из файла1, так и из файла2, плюс ++ означает, что одна строка, которая была добавлена, не
появляются либо в файле1, либо в файле2). Также восемь других строк совпадают с файлом file1, но делают
не отображается в файле2 (следовательно, с префиксом +).

При отображении с помощью git diff-tree -c он сравнивает родителей коммита слияния со слиянием.
результат (т.е. file1..fileN - это родители). При отображении с помощью git diff-files -c он сравнивает
два неразрешенных родителя слияния с файлом рабочего дерева (т.е. file1 - это этап 2, также известный как
«наша версия», file2 - это этап 3, также известный как «их версия»).

ДРУГИЕ DIFF ФОРМАТЫ


Параметр --summary описывает недавно добавленные, удаленные, переименованные и скопированные файлы. --Stat
опция добавляет дифференциал(1) график вывода. Эти варианты можно комбинировать с другими
параметры, такие как -p, и предназначены для употребления человеком.

При отображении изменения, связанного с переименованием или копированием, вывод --stat форматирует
путевые имена компактно, комбинируя общий префикс и суффикс путевых имен. Например,
изменение, которое перемещает arch / i386 / Makefile в arch / x86 / Makefile при изменении 4 строк, будет
показано так:

arch / {i386 => x86} / Makefile | 4 + -

Параметр --numstat дает дифференциал(1) информация, но предназначена для более легкой машины
потребление. Запись в выводе --numstat выглядит так:

1 2 README
3 1 арка / {i386 => x86} / Makefile

То есть слева направо:

1. количество добавленных строк;

2. вкладка;

3. количество удаленных строк;

4. вкладка;

5. путь (возможно, с информацией о переименовании / копировании);

6. перевод строки.

Когда действует опция вывода -z, вывод форматируется следующим образом:

1 2 README НУЛЕВОЕ
3 1 NUL arch / i386 / Makefile NUL arch / x86 / Makefile NUL

То есть:

1. количество добавленных строк;

2. вкладка;

3. количество удаленных строк;

4. вкладка;

5. NUL (существует только при переименовании / копировании);

6. Путь в прообразе;

7. NUL (существует только при переименовании / копировании);

8. путь в postimage (существует только при переименовании / копировании);

9. NUL.

Дополнительный NUL перед путем к прообразу в переименованном случае позволяет скриптам, которые читают
вывод, чтобы узнать, является ли текущая считываемая запись однопутной записью или переименованием / копией
запись без предварительного чтения. После прочтения добавленных и удаленных строк, чтение до NUL
даст имя пути, но если это NUL, запись покажет два пути.

ПРИМЕРЫ


Различные способы проверить ваше рабочее дерево

$ git разница (1)
$ git diff --cache (2)
$ git разница ГОЛОВА (3)

1. Изменения в рабочем дереве еще не подготовлены для следующего коммита.
2. Изменения между индексом и вашей последней фиксацией; что бы вы совершили, если бы вы
запустите «git commit» без опции «-a».
3. Изменения в рабочем дереве с момента вашего последнего коммита; что бы вы совершили, если
вы запускаете "git commit -a"

Сравнение с произвольными коммитами

$ git diff тест (1)
$ git diff HEAD - ./test (2)
$ git diff HEAD ^ HEAD (3)

1. Вместо того, чтобы использовать кончик текущей ветви, сравните с кончиком "test"
филиал.
2. Вместо того, чтобы сравнивать с верхушкой "тестовой" ветки, сравните с верхушкой
текущая ветка, но ограничьте сравнение файлом "test".
3. Сравните версию перед последней фиксацией и последней фиксацией.

Сравнение веток

Мастер темы $ git diff (1)
$ git diff тема..мастер (2)
$ git diff topic ... мастер (3)

1. Изменения между подсказками темы и основной веткой.
2. То же, что и выше.
3. Изменения, которые произошли в основной ветке с момента запуска тематической ветки
прочь.

Ограничение вывода diff

$ git diff --diff-filter = MRC (1)
$ git diff --имя-статус (2)
$ git diff arch / i386 включает / asm-i386 (3)

1. Показывать только изменение, переименование и копирование, но не добавление или удаление.
2. Показывать только имена и характер изменения, но не фактический вывод различий.
3. Ограничьте вывод различий именованными поддеревьями.

Изменение вывода diff

$ git diff --find-copy-harder -B -C (1)
$ git разница -R (2)

1. Потратьте дополнительные циклы на поиск переименований, копий и полных перезаписей (очень дорого).
2. Разница вывода в обратном порядке.

Используйте git-diff онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    ПостустановщикF
    ПостустановщикF
    PostInstallerF установит все
    программное обеспечение, которое Fedora Linux и другие
    не включает по умолчанию, после
    запуск Fedora в первый раз. Его
    легко для ...
    Скачать PostInstallerF
  • 2
    Трассирование
    Трассирование
    Проект strace перенесен в
    https://strace.io. strace is a
    диагностика, отладка и обучение
    трассировщик пользовательского пространства для Linux. Это используется
    следить за...
    Скачать стрейс
  • 3
    Графический интерфейс извлечения gMKV
    Графический интерфейс извлечения gMKV
    Графический интерфейс для утилиты mkvextract (часть
    MKVToolNix), который включает большинство (если
    не все) функциональность mkvextract и
    утилиты мквинфо. Написано на C#NET 4.0,...
    Скачать gMKVExtractGUI
  • 4
    Библиотека JasperReports
    Библиотека JasperReports
    Библиотека JasperReports - это
    самый популярный в мире открытый исходный код
    бизнес-аналитика и отчетность
    двигатель. Он полностью написан на Java
    и это умеет ...
    Скачать библиотеку JasperReports
  • 5
    Книги Frappe
    Книги Frappe
    Frappe Books — это бесплатная книга с открытым исходным кодом.
    программное обеспечение для настольного бухгалтерского учета, которое
    простой и хорошо продуманный для использования
    малый бизнес и фрилансеры. Это'...
    Скачать книги фраппе
  • 6
    Числовой Python
    Числовой Python
    НОВОСТИ: NumPy 1.11.2 — последний релиз
    это будет сделано на sourceforge. Колеса
    для Windows, Mac и Linux, а также
    заархивированные исходные дистрибутивы могут быть четыре...
    Скачать числовой Python
  • Больше »

Команды Linux

Ad