Это команда git-show, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
git-show - Показать различные типы объектов
СИНТАКСИС
мерзавец по оценкам, [параметры] ...
ОПИСАНИЕ
Показывает один или несколько объектов (капли, деревья, теги и коммиты).
Для коммитов он показывает сообщение журнала и текстовую разницу. Он также представляет фиксацию слияния
в специальном формате, созданном мерзавец дерево различий --cc.
Для тегов он показывает сообщение тега и связанные объекты.
Для деревьев отображаются имена (эквивалентные мерзавец ls-дерево с --name-only).
Для простых BLOB-объектов отображается простое содержимое.
Команда принимает параметры, применимые к мерзавец дерево различий команда для управления тем, как
показаны изменения, которые вносит фиксация.
На этой странице руководства описаны только наиболее часто используемые параметры.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
...
Имена отображаемых объектов. Для получения более полного списка способов написания имен объектов,
см. раздел «УКАЗАНИЕ ИЗМЕНЕНИЙ» в gitrevisions(7).
--pretty [= ], --format =
Достаточно распечатать содержимое журналов фиксации в заданном формате, где может быть
один из одна линия, короткие, средний, полный, более полное, e-mail, сырье, формат: и
tformat:. Когда не является ни одним из вышеперечисленных и имеет % заполнитель в нем это
действует как если бы --pretty = tformat: были даны.
Дополнительные сведения о каждом формате см. В разделе «СОВЕРШЕННЫЕ ФОРМАТЫ». Когда
знак равно часть опущена, по умолчанию средний.
Примечание: вы можете указать красивый формат по умолчанию в конфигурации репозитория (см.
git-конфигурация(1 г.)).
--abbrev-совершить
Вместо того, чтобы показывать полное 40-байтовое шестнадцатеричное имя объекта фиксации, показывать только
частичный префикс. Количество цифр не по умолчанию можно указать с помощью "--abbrev = "
(который также изменяет вывод diff, если он отображается).
Это должно сделать "--pretty = oneline" более читабельным для людей, использующих
Клеммы на 80 столбцов.
--no-abbrev-commit
Показать полное 40-байтовое шестнадцатеричное имя объекта фиксации. Это отменяет --abbrev-commit и
те параметры, которые подразумевают это, такие как «--oneline». Он также отменяет
log.abbrevCommit Переменная.
--одна линия
Это сокращение от "--pretty = oneline --abbrev-commit", используемых вместе.
--encoding =
Объекты фиксации записывают кодировку, используемую для сообщения журнала, в своей кодировке.
заголовок; эту опцию можно использовать, чтобы указать команде, что нужно перекодировать сообщение журнала фиксации.
в кодировке, предпочитаемой пользователем. Для команд, не связанных с сантехникой, это значение по умолчанию
UTF-8. Обратите внимание: если объект утверждает, что он закодирован в X, а мы выводим в X, мы
выведет объект дословно; это означает, что недопустимые последовательности в оригинале
фиксация может быть скопирована на вывод.
--notes [= ]
Показать заметки (см. git-заметки(1)), которые аннотируют фиксацию, при отображении фиксации
сообщение журнала. Это значение по умолчанию для команд git log, git show и git whatchanged.
когда в командной строке не задана опция --pretty, --format или --oneline.
По умолчанию показанные заметки взяты из ссылок на заметки, перечисленных в core.notesRef и
примечания.displayRef переменные (или соответствующие переопределения среды). Видеть git-конфигурация(1)
Больше подробностей.
С необязательным аргумент, покажите ссылку на эту заметку вместо заметок по умолчанию
исх. Ссылка указывает полное имя ссылки, когда она начинается с refs / notes /; когда это
начинается с notes /, refs /, в противном случае к refs / notes / добавляется префикс, чтобы сформировать полное имя
исх.
Несколько параметров --notes можно комбинировать для управления отображаемыми заметками.
Примеры: «--notes = foo» покажет только заметки из «refs / notes / foo»; "--notes = foo
--notes »отобразит как заметки из« refs / notes / foo », так и ссылки на заметки по умолчанию.
--без заметок
Не показывать заметки. Это отменяет указанную выше опцию --notes, сбрасывая список
заметки ссылки, из которых показаны заметки. Параметры анализируются в порядке, указанном на
командная строка, поэтому, например, "--notes --notes = foo --no-notes --notes = bar" будет отображаться только
заметки из "refs / notes / bar".
--show-notes [= ], - [нет-] стандартные примечания
Эти параметры устарели. Вместо этого используйте указанные выше параметры --notes / - no-notes.
--show-подпись
Проверьте действительность подписанного объекта фиксации, передав подпись в gpg --verify
и покажите результат.
ДОВОЛЬНО ФОРМАТЫ
Если фиксация - это слияние, а красивый формат - нет одна линия, e-mail or сырье,
дополнительная строка вставляется перед Автор: линия. Эта строка начинается с «Объединить:» и
sha1 наследственных коммитов печатаются через пробел. Обратите внимание, что перечисленные
коммиты не обязательно могут быть списком направлять родитель делает коммит, если вы ограничили
ваш взгляд на историю: например, если вас интересуют только изменения, связанные с
определенный каталог или файл.
Есть несколько встроенных форматов, и вы можете определить дополнительные форматы, установив
хорошенький. config на другое имя формата или Формат: строка, как
описано ниже (см. git-конфигурация(1)). Вот подробности встроенных форматов:
· одна линия
Он разработан, чтобы быть максимально компактным.
· короткие
совершить
Автор:
· средний
совершить
Автор:
Дата:
· полный
совершить
Автор:
Совершить:
· более полное
совершить
Автор:
Дата автора:
Совершить:
CommitDate:
Из
Из:
Дата:
Тема: [ПАТЧ]
· сырье
The сырье формат показывает всю фиксацию точно так, как она хранится в объекте фиксации.
Примечательно, что SHA-1 отображаются полностью, независимо от того, --abbrev или
--no-abbrev используются, и родители информация показывает истинные родительские коммиты, без
с учетом трансплантатов или упрощения анамнеза. Обратите внимание, что этот формат влияет на
способ отображения коммитов, но не способ отображения различий, например, с помощью git log
--сырой. Чтобы получить полные имена объектов в формате raw diff, используйте --no-abbrev.
· формат:
The формат: формат позволяет указать, какую информацию вы хотите отображать.
Он немного похож на формат printf, за тем исключением, что вы получаете
перевод строки с %n вместо \n.
Например, формат: "The автор of %h законопроект % an, % ar% n название законопроект >>% s <<% n " покажет
что-то вроде этого:
Автором fe6e0ee был Junio C Hamano, 23 часа назад.
Заголовок был >> t4119: test autocomputing -p для традиционного ввода различий. <
Заполнители:
· %H: совершить хеш
· %h: сокращенный хеш фиксации
· %T: хеш дерева
· %t: сокращенный хеш дерева
· %P: родительские хэши
· %p: сокращенные родительские хэши
· % an: имя автора
· % aN: имя автора (уважительно .mailmap, см. git-шортлог(1) или мерзавец(1))
· % ae: электронная почта автора
· % aE: адрес электронной почты автора (относительно .mailmap, см. git-шортлог(1) или мерзавец(1))
· %объявление: дата автора (формат соответствует --date = option)
· %объявление: дата автора, стиль RFC2822
· % ar: дата автора, родственник
· %в: дата автора, временная метка UNIX
· % ai: дата автора, формат, подобный ISO 8601
· % aI: дата автора, строгий формат ISO 8601
· % cn: имя коммиттера
· % cN: имя коммиттера (в отношении .mailmap, см. git-шортлог(1) или мерзавец(1))
· % ce: электронная почта коммиттера
· % cE: адрес электронной почты коммиттера (относительно .mailmap, см. git-шортлог(1) или мерзавец(1))
· %CD: дата коммиттера (формат соответствует --date = option)
· %CD: дата коммиттера, стиль RFC2822
· % cr: дата коммиттера, относительная
· % ct: дата коммиттера, временная метка UNIX
· % ci: дата коммиттера, формат, подобный ISO 8601
· % cI: дата коммиттера, строгий формат ISO 8601
· %d: ref имена, такие как опция --decorate в git-журнал(1)
· %D: ref имена без оболочки "(", ")".
· %e: кодировка
· %s: тема
· %f: очищенная строка темы, подходящая для имени файла
· %b: тело
· %B: необработанное тело (объект и тело без упаковки)
· %N: совершить заметки
· % GG: необработанное проверочное сообщение от GPG для подписанного коммита
· %ГРАММ?: показать "G" для хорошей подписи, "B" для плохой подписи, "U" для хорошей подписи,
ненадежная подпись и "N" для отсутствия подписи
· % GS: показать имя подписавшего для подписанного коммита
· % GK: показать ключ, используемый для подписи подписанного коммита
· % gD: селектор reflog, например refs / stash @ {1}
· % gd: сокращенный селектор рефлога, например stash @ {1}
· % gn: имя личности reflog
· % gN: reflog идентификационное имя (уважая .mailmap, см. git-шортлог(1) или мерзавец
рост количества бездомных пытаются свалить(1))
· % ge: reflog идентификационный адрес электронной почты
· % gE: reflog идентификационный адрес электронной почты (в отношении .mailmap, см. git-шортлог(1) или мерзавец
рост количества бездомных пытаются свалить(1))
· % gs: reflog тема
· % Кредит: переключить цвет на красный
· % Cgreen: переключить цвет на зеленый
· % Cblue: переключить цвет на синий
· % Creset: сбросить цвет
· % C (...): спецификация цвета, как описано в параметре конфигурации color.branch. *; добавление
auto, вначале будет излучать цвет только тогда, когда цвета включены для вывода журнала
(по color.diff, color.ui или --color, и соблюдая автоматические настройки
бывший, если мы идем к терминалу). только авто (т.е.% C (авто)) включится
автоматическая раскраска следующих заполнителей до тех пор, пока цвет не изменится снова.
· %m: левая, правая или граничная отметка
· %n: новая линия
· %%: необработанный %
· % x00: распечатать байт из шестнадцатеричного кода
· % w ([ [, [, ]]]): переключить перенос строки, как опция -w в мерзавец
короткий журнал(1).
· % <( [, trunc | ltrunc | mtrunc]): сделать так, чтобы следующий заполнитель занимал не менее N столбцов,
если необходимо, заполните пробелы справа. Необязательно обрезать в начале
(ltrunc), середина (mtrunc) или конец (trunc), если вывод длиннее N
столбцы. Обратите внимание, что усечение правильно работает только при N> = 2.
· % <| ( ): сделать следующий заполнитель, по крайней мере, до N-го столбца, заполнение
пробелы справа при необходимости
· %> ( ), %> | ( ): похожий на % <( ), % <| ( ) соответственно, но пробелы
налево
· % >> ( ), % >> | ( ): похожий на %> ( ), %> | ( ) соответственно, за исключением того, что если
следующий заполнитель занимает больше пробелов, чем указано, и слева от него есть пробелы,
используйте эти места
· %> <( ), %> <| ( ): похожий на % <( ), % <| ( ) соответственно, но оба дополнения
стороны (т.е. текст по центру)
Внимание
Некоторые заполнители могут зависеть от других параметров, предоставленных механизму обхода исправлений.
Например, параметры% g * reflog вставят пустую строку, если мы не
просмотр записей журнала ссылок (например, с помощью git log -g). Заполнители% d и% D будут использовать
"короткий" формат оформления, если --decorate еще не был указан в команде
линии.
Если вы добавите + (знак плюса) после % заполнителя, перевод строки вставляется немедленно
перед раскрытием тогда и только тогда, когда заполнитель расширяется до непустой строки.
Если вы добавите - (знак минус) после % заполнителя, перевод строки, непосредственно предшествующий
раскрытие удаляется тогда и только тогда, когда заполнитель заменяется пустой строкой.
Если вы добавите `` (пробел) после % заполнителя, пробел вставляется непосредственно перед
расширение тогда и только тогда, когда заполнитель расширяется до непустой строки.
· формат:
The формат: формат работает точно так же, как Формат:, за исключением того, что содержит "терминатор"
семантика вместо семантики "разделителя". Другими словами, каждый коммит имеет
добавлен символ конца сообщения (обычно новая строка), а не разделитель
помещается между записями. Это означает, что последняя запись однострочного формата будет
должным образом заканчиваться новой строкой, как это делает однострочный формат. Для
пример:
$ git log -2 --pretty = format:% h 4da45bef \
| perl -pe '$ _. = "- НЕТ НОВОЙ СТРОКИ \ n", если только / \ n /'
4da45be
7134973 - НЕТ NEWLINE
$ git log -2 --pretty = tformat:% h 4da45bef \
| perl -pe '$ _. = "- НЕТ НОВОЙ СТРОКИ \ n", если только / \ n /'
4da45be
7134973
Кроме того, любая нераспознанная строка, в которой есть%, интерпретируется как имеющая
tformat: перед ним. Например, эти два эквивалента:
$ git log -2 --pretty = tformat:% h 4da45bef
$ git log -2 --pretty =% h 4da45bef
ОБЩИЙ DIFF ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
-р, -у, --патч
Сгенерировать патч (см. Раздел о создании патчей).
-s, --no-патч
Подавить вывод diff. Полезно для таких команд, как git show, которые показывают патч от
по умолчанию или для отмены эффекта --patch.
-U , --unified =
Создавайте различия с помощью строки контекста вместо обычных трех. Подразумевает -p.
--сырой
Для каждой фиксации покажите сводку изменений, используя необработанный формат сравнения. Смотрите "RAW
ВЫХОДНОЙ ФОРМАТ »раздела git-diff(1). Это отличается от отображения самого журнала
в необработанном формате, чего можно добиться с помощью --format = raw.
--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
Разделяйте коммиты NUL вместо новых строк.
Кроме того, если задано --raw или --numstat, не изменяйте пути и используйте NUL как
терминаторы выходного поля.
Без этой опции каждый выходной путь будет иметь TAB, LF, двойные кавычки и
символы обратной косой черты заменены на \ t, \ n, \ "и \\ соответственно, а имя пути
будут заключены в двойные кавычки, если произошла какая-либо из этих замен.
- имя-только
Показывать только имена измененных файлов.
--имя-статус
Показывать только имена и статус измененных файлов. См. Описание --diff-filter
вариант того, что означают статусные буквы.
- подмодуль [= ]
Укажите, как отображаются различия в подмодулях. Когда --submodule или --submodule = log
дано журнал формат используется. В этом формате перечислены коммиты в диапазоне вроде мерзавец
подмодуль(1) резюме. Пропуск опции --submodule или указание
--submodule = short, использует короткие формат. Этот формат просто показывает имена
фиксируется в начале и в конце диапазона. Можно настроить с помощью подмодуля diff.submodule
переменная конфигурация.
--color [= ]
Показать цветной diff. --color (т.е. без знак равно) совпадает с --color = always.
может быть всегда, никогда или авто.
- бесцветный
Отключить цветной дифференциал. Это то же самое, что и --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 [= ]
При генерации различий обнаруживайте и сообщайте о переименованиях для каждой фиксации. Для следующих файлов
при переименовании при просмотре истории, см. --follow. Если указано 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, --функция-контекст
Показать все окружающие функции изменений.
--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).
ПОЛУЧЕНИЕ ПАТЧИ -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, также известный как «их версия»).
ПРИМЕРЫ
git показать v1.0.0
Показывает тег v1.0.0 вместе с объектом, на который указывают теги.
git show v1.0.0 ^ {дерево}
Показывает дерево, на которое указывает тег v1.0.0.
git show -s --format =% s v1.0.0 ^ {коммит}
Показывает тему фиксации, на которую указывает тег v1.0.0.
git show next ~ 10: Документация / README
Показывает содержимое файла Documentation / README в том виде, в каком оно было текущим на 10-й день.
последняя фиксация ветки следующая.
git show master: Makefile master: t / Makefile
Объединяет содержимое указанных файлов Makefile в главу мастера ветки.
ОБСУЖДЕНИЕ
Git в некоторой степени не зависит от кодировки символов.
· Содержимое больших двоичных объектов представляет собой неинтерпретируемые последовательности байтов. Здесь нет
кодирование перевода на базовом уровне.
· Имена путей кодируются в форме нормализации UTF-8 C. Это относится к объектам дерева,
индексный файл, имена ссылок, а также имена путей в аргументах командной строки,
переменные среды и файлы конфигурации (.git / config (см. git-конфигурация(1)), gitignore(5)
gitattributes(5) и gitmodules(5 г.)).
Обратите внимание, что Git на базовом уровне обрабатывает имена путей просто как последовательности, отличные от NUL.
байтов, преобразование кодировки имени пути не выполняется (кроме Mac и Windows).
Следовательно, использование имен путей, отличных от ASCII, в основном будет работать даже на платформах и файловых
системы, использующие устаревшие расширенные кодировки ASCII. Однако репозитории, созданные на
такие системы не будут работать должным образом в системах на основе UTF-8 (например, Linux, Mac, Windows)
наоборот. Кроме того, многие инструменты на основе Git просто предполагают, что имена путей
UTF-8 и не сможет правильно отображать другие кодировки.
· Сообщения журнала фиксации обычно кодируются в UTF-8, но другие расширенные кодировки ASCII
также поддерживаются. Сюда входят ISO-8859-x, CP125x и многие другие, но
Многобайтовые кодировки UTF-16/32, EBCDIC и CJK (GBK, Shift-JIS, Big5, EUC-x, CP9xx
и т.д.).
Хотя мы рекомендуем кодировать сообщения журнала фиксации в UTF-8, как ядро, так и
Git Porcelain спроектирован так, чтобы не использовать UTF-8 в проектах. Если все участники
конкретному проекту удобнее использовать устаревшие кодировки, Git не запрещает
Это. Однако следует помнить о нескольких вещах.
1. мерзавец совершать и мерзавец дерево фиксации выдает предупреждение, если ему предоставлено сообщение журнала фиксации
не выглядит как допустимая строка UTF-8, если вы явно не укажете, что ваш проект использует
устаревшая кодировка. Можно сказать, что i18n.commitencoding находится в .git / config.
файл, например:
[и18н]
фиксация = ISO-8859-1
Объекты фиксации, созданные с помощью вышеуказанного параметра, записывают значение i18n.commitencoding.
в заголовке кодировки. Это сделано для того, чтобы помочь другим людям, которые посмотрят на них позже. Отсутствие
этот заголовок подразумевает, что сообщение журнала фиксации закодировано в UTF-8.
2. мерзавец журнал, мерзавец по оценкам, , мерзавец рост количества бездомных пытаются свалить и друзья смотрят на заголовок кодировки коммита
объект и попробуйте перекодировать сообщение журнала в UTF-8, если не указано иное. Ты
можно указать желаемую кодировку вывода с помощью i18n.logoutputencoding в .git / config
файл, например:
[и18н]
logoutputencoding = ISO-8859-1
Если у вас нет этой переменной конфигурации, значение i18n.commitencoding равно
используется вместо
Обратите внимание, что мы сознательно решили не перекодировать сообщение журнала фиксации, когда фиксация
сделано, чтобы заставить UTF-8 на уровне объекта фиксации, потому что перекодирование в UTF-8 не
обязательно обратимая операция.
GIT
Часть мерзавец(1) люкс
Используйте git-show онлайн с помощью сервисов onworks.net