Це команда git-log, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
git-log - Показати журнали фіксації
СИНТАКСИС
мерзотник журнал [ ] [ ] [[--] ...]
ОПИС
Показує журнали фіксації.
Команда приймає параметри, застосовні до команди git rev-list, щоб контролювати те, що відображається
і як, а також параметри, застосовні до команд git diff-*, щоб керувати змінами кожної з них
показано введення коміту.
ВАРІАНТИ
-- слідувати
Продовжуйте перераховувати історію файлу за межами перейменування (працює лише для одного файлу).
--no-decorate, --decorate[=коротко|повний|ні]
Роздрукуйте імена посилань для будь-яких відображених комітів. Якщо коротка вказано, вих
префікси назв посилання/керівники/, посилання/теги/ та refs/remotes/ не буде надруковано. Якщо Повний
вказано, буде надруковано повне ім’я посилання (включаючи префікс). Опція за замовчуванням
is коротка.
--джерело
Роздрукуйте ім'я ref, вказане в командному рядку, за допомогою якого було досягнуто кожного коміта.
--use-mailmap
Використовуйте файл mailmap, щоб зіставити імена авторів і учасників, а також електронні адреси з канонічними
справжні імена та електронні адреси. Побачити git-shortlog(1).
--повна відмінність
Без цього прапора git log -p ... показує коміти, які стосуються вказаних шляхів,
і відрізняється приблизно тими самими вказаними шляхами. При цьому відображається повна різниця
коміти, які стосуються вказаних шляхів; це означає що " ..." лише обмеження
фіксує, і не обмежує diff для цих комітів.
Зауважте, що це впливає на всі типи вихідних даних на основі diff, наприклад, ті, які створює --stat,
і т.п.
--розмір журналу
Включіть рядок «розмір журналу ” у виводі для кожного коміта, де є
довжина повідомлення цього коміту в байтах. Призначений для прискорення інструментів, які читають журнал
повідомлення з виводу журналу git, дозволяючи їм виділяти місце заздалегідь.
-Л , : , -L : :
Простежте еволюцію діапазону ліній, заданого " , " (або ім'я функції
регулярний вираз ) в межах . Ви не можете давати жодних обмежувачів шляху. Це
наразі обмежується прогулянкою, починаючи з однієї ревізії, тобто ви можете лише давати
нуль або один позитивний аргумент перегляду. Ви можете вказати цю опцію кілька разів.
і може приймати одну з таких форм:
· кількість
Якщо або є числом, він визначає абсолютний номер рядка (кількість рядків
з 1).
· /регулярний вираз/
Ця форма використовуватиме перший рядок, що відповідає заданому регулярному виразу POSIX. Якщо є
регулярний вираз, він шукатиме з кінця попереднього діапазону -L, якщо такий є, інакше
від початку файлу. Якщо є “^/regex/”, він шукатиме з початку
файл. Якщо є регулярним виразом, він шукатиме, починаючи з рядка, заданого .
· +зміщення або -зміщення
Це справедливо лише для і вказуватиме ряд рядків до або після
рядок, заданий .
Якщо «: ” подається замість і , це регулярний вираз
який позначає діапазон від першого рядка назви функції, який відповідає , аж до
наступний рядок назви функції. “: ” виконує пошук з кінця попереднього діапазону -L, якщо
будь-який, інакше з початку файлу. «^: ” виконує пошук із початку файлу.
Показувати лише коміти у вказаному діапазоні редакцій. Коли ні є
за замовчуванням він має значення HEAD (тобто вся історія, що веде до поточного коміту).
origin..HEAD вказує всі коміти, доступні з поточного коміту (тобто HEAD),
але не від походження. Повний список способів написання , див
Уточнення Діапазони розділ гітревізії(7).
[--] ...
Показувати лише коміти, яких достатньо, щоб пояснити, як файли відповідають вказаним
з’явилися шляхи. Побачити Історія Спрощення нижче для деталей та іншого
режими спрощення.
Шляхи можуть мати префікс "-- ", щоб відокремити їх від параметрів або параметрів
діапазон перегляду, коли виникає плутанина.
здійснити Обмежуючий
Крім визначення діапазону комітів, які повинні бути перераховані за допомогою спеціальних позначень
як пояснюється в описі, може застосовуватися додаткове обмеження фіксації.
Використання додаткових параметрів зазвичай ще більше обмежує вихід (наприклад, --since= межі до
фіксує новіше ніж , і використовувати його з --grep= додаткові обмеження для комісій
повідомлення журналу якого містить рядок, який відповідає ), якщо не зазначено інше.
Зауважте, що вони застосовуються перед фіксацією параметрів упорядкування та форматування, наприклад
--зворотний.
- , -н , --max-count=
Обмежте кількість комітів для виведення.
--пропустити=
Пропускати номер фіксує перед початком показу результату фіксації.
-- оскільки= , --після=
Показувати коміти, пізніші за певну дату.
--доки= , --перед=
Показати коміти, старші за певну дату.
--автор= , --committer=
Обмежте виведення комітів до тих, у яких рядки заголовка автора/коммітера відповідають
заданий шаблон (регулярний вираз). З більш ніж одним --author= , здійснює
вибирається автор, автор якого відповідає будь-якому із заданих шаблонів (аналогічно для кількох
--committer= ).
--grep-reflog=
Обмежте виведення комітів до тих, у яких записи reflog відповідають вказаному шаблону
(регулярний вираз). З більш ніж одним --grep-reflog, фіксує чиє повідомлення reflog
відповідає будь-якому із заданих шаблонів. Використовувати цю опцію є помилкою, якщо
--walk-reflogs використовується.
--grep=
Обмежте вихідні дані комітів лише з повідомленнями журналу, які відповідають вказаному шаблону
(регулярний вираз). З більш ніж одним --grep= , фіксує чиє повідомлення
збігається з будь-яким із заданих шаблонів (але див. --all-match).
Коли --show-notes діє, повідомлення з нотаток збігається так, ніби було
частина повідомлення журналу.
--усі матчі
Обмежте вихідні дані комітів такими, які відповідають усім заданим параметрам --grep, а не такими, що відповідають
відповідати хоча б одному.
--invert-grep
Обмежте виведення комітів до тих з повідомленнями журналу, які не відповідають шаблону
вказано за допомогою --grep= .
-i, --regexp-ignore-case
Установіть відповідність шаблонам обмеження регулярного виразу без урахування регістру літер.
--basic-regexp
Вважайте обмежувальні шаблони базовими регулярними виразами; це за замовчуванням.
-E, --extended-regexp
Вважайте, що обмежувальні шаблони є розширеними регулярними виразами замість
базові регулярні вирази за замовчуванням.
-F, --фіксовані рядки
Вважайте обмежувальні шаблони фіксованими рядками (не інтерпретуйте шаблон як a
регулярний вираз).
--perl-регулярний вираз
Вважайте, що обмежувальні шаблони є регулярними виразами, сумісними з Perl. Вимагає
libpcre для компіляції.
--видалити-порожній
Зупиніться, коли заданий шлях зникне з дерева.
-- зливається
Друкуйте лише коміти злиття. Це те саме, що --min-parents=2.
--без злиття
Не друкуйте коміти з кількома батьками. Це точно так само, як
--max-parents=1.
--min-батьки= , --max-parents= , --no-min-батьків, --no-max-батьків
Показувати лише коміти, які мають принаймні (або максимум) стільки батьківських комітів. в
зокрема, --max-parents=1 те саме, що --no-merges, --min-parents=2 те саме, що
-- зливається. --max-parents=0 дає всі кореневі коміти і --min-parents=3 усі восьминоги
зливається.
--no-min-parents і --no-max-parents знову скидають ці обмеження (без обмежень).
Еквівалентними формами є --min-parents=0 (будь-який коміт має 0 або більше батьків) і
--max-parents=-1 (від’ємні числа позначають відсутність верхньої межі).
--перший з батьків
Дотримуйтесь лише першого батьківського коміту, побачивши коміт злиття. Цей варіант може дати а
кращий огляд при перегляді еволюції певної тематичної гілки, тому що
злиття в тематичну гілку, як правило, стосуються лише пристосування до оновленого upstream from
час від часу, і ця опція дозволяє ігнорувати внесені окремі коміти
до вашої історії таким злиттям. Не можна поєднувати з --bisect.
-- ні
Перевертає значення ^ префікс (або його відсутність) для всіх наступних ревізій
специфікатори, до наступного --not.
--все
Уявіть, ніби всі посилання в refs/ вказані в командному рядку як .
--гілки[= ]
Уявіть, ніби всі посилання в refs/heads вказані в командному рядку як .
If задано, обмежте гілки до тих, що відповідають заданій оболонкі glob. Якщо візерунок
не вистачає ?, *або [, /* в кінці мається на увазі.
--теги[= ]
Уявіть, ніби всі посилання в refs/tags вказані в командному рядку як . Якщо
дається, обмежте теги до тих, що відповідають заданій оболонкі glob. Якщо візерунка не вистачає ?,
*або [, /* в кінці мається на увазі.
--remotes[= ]
Уявіть, ніби всі посилання в refs/remotes перераховані в командному рядку як .
If задано, обмежте гілки віддаленого відстеження тими, що відповідають заданій оболонкі
глоб. Якщо візерунка не вистачає ?, *або [, /* в кінці мається на увазі.
--glob=
Уявіть, ніби всі refs відповідають shell glob перераховані на
командний рядок як . Провідна посилання/, автоматично додається до початку, якщо його немає. Якщо
бракує візерунка ?, *або [, /* в кінці мається на увазі.
--виключити=
Не включайте відповідність посилань що наступні --all, --branches, --tags,
--remotes або --glob інакше б розглянули. Повтори цього варіанту накопичуються
шаблони виключення до наступного --all, --branches, --tags, --remotes або --glob
параметр (інші параметри або аргументи не очищають накопичені шаблони).
Наведені шаблони не повинні починатися з refs/heads, refs/tags або refs/remotes, коли
застосовується до --branches, --tags або --remotes відповідно, і вони повинні починатися з
refs/ при застосуванні до --glob або --all. Якщо слід /* призначений, його треба дати
явно.
--reflog
Уявіть, ніби всі об’єкти, згадані reflogs, перераховані в командному рядку як
.
--ігнорувати-відсутня
Побачивши у введених даних неправильне ім’я об’єкта, зробіть вигляд, ніби неправильного введення не було
дано.
--поділ
Уявіть, ніби погана бісекція refs/bisect/bad була в списку, і ніби вона була
потім --not та хороші посилання refs/bisect/good-* у командному рядку.
Не можна поєднувати з --first-parent.
--stdin
На додаток до перелічені в командному рядку, прочитайте їх зі стандарту
введення. Якщо -- з’являється роздільник, припиніть читання комітів і почніть читати шляхи до
обмежити результат.
-- вишневий знак
Подібно до --cherry-pick (див. нижче), але позначайте еквівалентні коміти за допомогою =, а не пропускаючи
їх, і нееквівалентні з +.
-- вишнева кирка
Пропустіть будь-який комміт, який вносить ту саму зміну, що й інший комміт на «іншій стороні»
коли набір комітів обмежений симетричною різницею.
Наприклад, якщо у вас є дві гілки, A і B, звичайний спосіб перерахувати всі коміти
лише одна їх сторона має --left-right (див. приклад нижче в описі
з параметра --ліво-праворуч). Тим не менш, він показує коміти, які були обрані
з іншої гілки (наприклад, «3-й на b» можна вибрати з гілки А).
За допомогою цієї опції такі пари комітів виключаються з виводу.
--лише ліворуч, --лише праворуч
Список фіксує лише на відповідній стороні симетричного діапазону, тобто лише ті, які
буде позначено < відп. > від --ліворуч-праворуч.
Наприклад, --cherry-pick --right-only A...B пропускає ті коміти з B, які знаходяться в
A або є еквівалентними виправленням до коміту в A. Іншими словами, тут перераховані + коміти
з git cherry A B. Точніше, --cherry-pick --right-only --no-merges дає
точний список.
-- вишня
Синонім для --right-only --cherry-mark --no-merges; корисно обмежити вихід до
коміти на нашій стороні та позначте ті, які були застосовані до іншої сторони a
роздвоєна історія з git log --cherry upstream...mybranch, схожа на git cherry
вище за течією моєї філії.
-g, --walk-reflogs
Замість того, щоб проходити ланцюжок походження комітів, перейдіть до записів reflog з останніх
один до старших. Коли використовується цей параметр, ви не можете вказати фіксації для виключення
(це є, ^здійснити, commit1..commit2 та скоєння1...здійснення2 позначення не можна використовувати).
У форматі --pretty, відмінному від однорядкового (із зрозумілих причин), це спричиняє вихід
щоб мати два додаткові рядки інформації, взяті з reflog. За замовчуванням, commit@{Nth}
у виводі використовується позначення. Коли початкова фіксація вказана як commit@{зараз},
вихід також використовує commit@{timestamp} натомість позначення. Під --pretty=oneline, the
повідомлення commit містить префікс цієї інформації в тому ж рядку. Цей варіант не може
поєднуватися з --reverse. Дивись також git-reflog(1).
-- об'єднати
Після невдалого злиття показати посилання, які торкаються файлів із конфліктом і не існують
всі головки об’єднати.
-- межа
Вихідні межі виключені. Межові фіксації мають префікс -.
Історія Спрощення
Іноді вас цікавлять лише частини історії, наприклад, коміти
модифікація конкретного . Але є дві частини Історія Спрощення, Одна частина
це вибір комітів, а інше — як це зробити, оскільки існують різні стратегії
спростити історію.
Наступні параметри вибирають коміти, які будуть показані:
Здійснює зміну даного вибрані.
--спростити за допомогою прикраси
Вибираються коміти, на які посилається деяка гілка або тег.
Зауважте, що додаткові коміти можуть бути показані, щоб надати значущу історію.
Наступні параметри впливають на спосіб виконання спрощення:
Режим за замовчуванням
Спрощує історію до найпростішої історії, пояснюючи кінцевий стан дерева.
Найпростіший, тому що він обрізає деякі бічні гілки, якщо кінцевий результат такий самий (тобто
об'єднання гілок з однаковим вмістом)
--повна історія
Те саме, що і режим за замовчуванням, але не обрізає деяку історію.
-- щільний
Відображаються лише вибрані коміти, а також деякі, які мають значущу історію.
-- рідкісний
Відображаються всі коміти в спрощеній історії.
--спрощення-злиття
Додаткова опція до --full-history, щоб видалити деякі непотрібні злиття з результату
історії, оскільки немає вибраних комітів, які сприяють цьому злиття.
-- родовід-шлях
Коли надається діапазон комітів для відображення (наприклад commit1..commit2 or commit2 ^здійснення1),
відображати лише коміти, які існують безпосередньо в ланцюжку походження між файлами commit1 та
commit2, тобто коміти, які є нащадками commit1, і предки с commit2.
Далі наведено більш детальне пояснення.
Припустимо, ви вказали foo як . Ми будемо називати коміти, які змінюють foo !TEESAME,
а решта ДЕРЕВО. (У diff, відфільтрованому для foo, вони виглядають різними та однаковими,
відповідно.)
Далі ми завжди будемо посилатися на той самий приклад історії для ілюстрації
відмінності між налаштуваннями спрощення. Ми припускаємо, що ви фільтруєте файл
foo у цьому графіку фіксації:
.-A---M---N---O---P---Q
/ / / / / / /
IBCDEY
\ / / / / /
`-------------' X
Горизонтальна лінія історії A---Q приймається як перший батько кожного злиття. The
зобов'язаннями є:
· I є початковим комітом, в якому foo існує з вмістом «asdf» і файлом quux
існує з вмістом «quux». Початкові коміти порівнюються з порожнім деревом, отже я
!ДЕРЕВО.
· У A foo містить лише «foo».
· B містить ту саму зміну, що і A. Його злиття M є тривіальним і, отже, ДЕРЕВОЄ для всіх
батьки.
· C не змінює foo, але його злиття N змінює його на «foobar», тому він не є TREESAME
будь-якому батькові.
· D встановлює foo на “baz”. Його злиття O поєднує рядки від N і D до “foobarbaz”;
тобто це не є ДЕРЕВОМ для жодного з батьків.
· E змінює quux на “xyzzy”, а його злиття P об’єднує рядки в “quux xyzzy”. P є
ДЕРЕВО до O, але не до E.
· X є незалежним кореневим комітом, який додав нову сторону файлу, а Y змінив її. Y є
ДЕРЕВО до X. Його злиття Q додало сторону P, і Q є ДЕРЕВОМ до P, але не до Y.
rev-list повертається назад по історії, включаючи або виключаючи коміти залежно від того, чи
--повна історія та/або батьківський перепис (через --parents або --children). The
доступні наступні налаштування.
Режим за замовчуванням
Коміти включаються, якщо вони не є TREESAME для жодного з батьків (хоча це може бути
змінено, див. --sparse нижче). Якщо фіксація була злиттям, і це було TREESAME до одного
батько, слідувати тільки за цим батьком. (Навіть якщо є кілька батьків TREESAME, дотримуйтесь
тільки один з них.) В іншому випадку слідкуйте за всіма батьками.
Це призводить до:
.-A---N---O
/ / /
Я---------D
Зверніть увагу, як правило, щоб слідувати лише батьківському TREESAME, якщо він доступний, видалено B
від розгляду повністю. C розглядався через N, але є TREESAME. Root фіксує
порівнюються з порожнім деревом, тож я !ДЕРЕВО.
Відносини між батьками та дітьми видно лише за допомогою --parents, але це не впливає на
коміти, вибрані в режимі за замовчуванням, тому ми показали батьківські рядки.
--повна історія без переписування батьків
Цей режим відрізняється від стандартного в одному пункті: завжди слідувати всім батькам об’єднання,
навіть якщо для одного з них це ДЕРЕВО. Навіть якщо більше ніж одна сторона злиття має
коміти, які включені, це не означає, що саме злиття є! В
наприклад, отримуємо
IABNDOPQ
M був виключений, оскільки він є ДЕРЕВОМ для обох батьків. Усі E, C і B були прогуляні,
але тільки B був !TREESAME, тому інші не з'являються.
Зауважте, що без батьківського переписування неможливо говорити про
батьківські/дочірні відносини між комітами, тому ми показуємо їх відключеними.
--повна історія з батьківським переписуванням
Звичайні коміти включаються, лише якщо вони !TRESAME (хоча це можна змінити,
див. --sparse нижче).
Об’єднання завжди включено. Однак їхній батьківський список переписаний: вздовж кожного
батьківський, вилучати коміти, які не включені самі. Це призводить до
.-A---M---N---O---P---Q
/ / / / / /
IB / D /
\ / / / /
`-------------'
Порівняйте з --full-history без переписування вище. Зауважте, що E було обрізано, тому що
це TREESAME, але батьківський список P був переписаний, щоб містити батьківський I для E.
те саме сталося для C і N, а також X, Y і Q.
Окрім наведених вище налаштувань, ви можете змінити, чи впливає TREESAME на включення:
-- щільний
Оброблені коміти включені, якщо вони не є TREESAME для жодного з батьків.
-- рідкісний
Включаються всі здійснені коміти.
Зауважте, що без --full-history це все одно спрощує злиття: якщо один із батьків
є TREESAME, ми дотримуємося лише цього, тому інші сторони злиття ніколи не є
ходив.
--спрощення-злиття
По-перше, побудуйте графік історії так само, як --full-history з батьківським перезаписом
робить (див. вище).
Потім спростіть кожен комміт C до його заміни C' в остаточній історії відповідно до
наступні правила:
· Установіть C' на C.
· Замініть кожен батьківський P елемента C' його спрощенням P'. У процесі скиньте
батьки, які є предками інших батьків або є root, фіксує TREESAME
порожнє дерево і видаліть дублікати, але подбайте про те, щоб ніколи не кидати всіх батьків
ми ДЕРЕВО.
· Якщо після цього батьківського перезапису C' є кореневим або злиттям (має нуль або >1
батьки), фіксація межі, або !TRESAME, залишається. В іншому випадку його замінюють
зі своїм єдиним батьком.
Ефект цього найкраще продемонстрований шляхом порівняння з --full-history з батьківським
переписування. Приклад перетворюється на:
.-A---M---N---O
/ / /
IBD
\ / /
`--------'
Зверніть увагу на основні відмінності в N, P і Q щодо --full-history:
· Я вилучив батьківський список N, оскільки він є предком іншого з батьків M.
Все-таки N залишився, тому що це !TREESAME.
· Батьківський список P так само було б видалено. П було потім видалено повністю, т.к
у нього був один батько і він ДЕРЕВО.
· Батьківський список Q був спрощений до X. Потім X було видалено, оскільки це було a
корінь ДЕРЕВА. Потім Q було видалено повністю, оскільки він мав одного з батьків і є
ДЕРЕВО.
Нарешті, доступний п’ятий режим спрощення:
-- родовід-шлях
Обмежте відображені коміти до тих, які безпосередньо в ланцюжку предків між «від»
і "to" фіксує в заданому діапазоні фіксації. Тобто відображати лише ті коміти, які є
предок коміту “to” і нащадки коміту “from”.
Як приклад використання розглянемо таку історію фіксацій:
D---E-------F
/ \ \
B---C---G---H---I---J
/\
A-------K--------------L--M
Черговий Д..М обчислює набір комітів, які є предками M, але виключає
ті, які є предками D. Це корисно, щоб побачити, що сталося з історією
що веде до M, оскільки D, у тому сенсі, що «що має M, чого не існувало в D».
Результатом у цьому прикладі будуть всі коміти, окрім A і B (і самого D).
курс).
Коли ми хочемо з’ясувати, які коміти в M забруднені помилкою, запровадженою
D і потребує виправлення, однак, ми можемо захотіти переглянути лише підмножину Д..М Ось і доводиться
власне нащадки D, тобто виключаючи C і K. Це саме те, що
Опція --ancestry-path робить. Застосовується до Д..М діапазон, це призводить до:
E-------F
\ \
G---H---I---J
\
Л--М
Опція --simplify-by-decoration дозволяє переглядати лише загальну картину
топології історії, пропускаючи коміти, на які не посилаються теги. Коміти є
позначено як !TREESAME (іншими словами, зберігається після описаних правил спрощення історії
вище), якщо (1) на них посилаються теги, або (2) вони змінюють вміст шляхів
задано в командному рядку. Усі інші коміти позначаються як TREESAME (за умови
спрощено).
здійснити замовлення
За замовчуванням коміти відображаються в зворотному хронологічному порядку.
--дата-порядок
Не показувати батьків до того, як будуть показані всі його діти, але в іншому випадку показуйте фіксації
порядок відмітки часу фіксації.
--автор-дата-порядок
Не показувати батьків до того, як будуть показані всі його діти, але в іншому випадку показуйте фіксації
порядок відмітки часу автора.
--топо-порядок
Не показуйте батьків до того, як будуть показані всі його діти, і уникайте показу комітів
перемішано кілька ліній історії.
Наприклад, у такій історії комітів:
---1----2----4----7
\ \
3----5----6----8---
де цифри позначають порядок часових позначок фіксації, git rev-list і друзів з
--date-order показує коміти в порядку позначки часу: 8 7 6 5 4 3 2 1.
З --topo-order вони відображатимуть 8 6 5 3 7 4 2 1 (або 8 7 4 2 6 5 3 1); деякі старші
коміти відображаються перед новішими, щоб уникнути показу комітів з двох
паралельний шлях розвитку, змішаний разом.
--зворотний
Виведіть коміти в зворотному порядку. Не можна поєднувати з --walk-reflogs.
Об'єкт Обхід
Ці параметри в основному призначені для упаковки репозиторіїв Git.
--no-walk[=(відсортовано|не відсортовано)]
Показуйте лише дані коміти, але не перетинайте їхніх предків. Це не має ніякого ефекту
якщо вказано діапазон. Якщо аргумент не відсортований, відображаються коміти
наказ, який вони отримали в командному рядку. Інакше (якщо відсортовано або немає аргументу
дано), коміти відображаються в зворотному хронологічному порядку за часом фіксації. Не може бути
у поєднанні з --граф.
-- робити-гуляти
Замінює попередній --no-walk.
здійснити форматування
--гарна[= ], --format=
Досить роздрукувати вміст журналів комітів у заданому форматі, де може бути
один з один рядок, коротка, середа, Повний, повніше, e-mail, сировина, формат: та
формат:. Коли не є жодним із перерахованих вище, і має %заповнювач в ньому, це
діє ніби --pretty=tformat: були надані.
Додаткову інформацію щодо кожного формату див. у розділі «КРАСНІ ФОРМАТИ». Коли
= частина пропущена, за замовчуванням середа.
Примітка: ви можете вказати красивий формат за замовчуванням у конфігурації сховища (див
git-config(1)).
--abbrev-commit
Замість того, щоб показувати повне 40-байтове шістнадцяткове ім’я об’єкта фіксації, покажіть лише
частковий префікс. Кількість цифр, що не є за замовчуванням, можна вказати за допомогою «--abbrev= "
(що також змінює вихід diff, якщо він відображається).
Це повинно зробити "--pretty=oneline" набагато більш читабельним для людей, які використовують
80-колонкові термінали.
--no-abbrev-commit
Показати повне 40-байтове шістнадцяткове ім’я об’єкта фіксації. Це заперечує --abbrev-commit і
ті параметри, які передбачають це, наприклад "--oneline". Він також перевизначає
log.abbrevCommit змінна.
--одна лінія
Це скорочення для "--pretty=oneline --abbrev-commit", що використовується разом.
--кодування=
Об’єкти фіксації записують кодування, що використовується для повідомлення журналу, у своєму кодуванні
заголовок; цю опцію можна використовувати, щоб наказати команді перекодувати повідомлення журналу фіксації
у кодуванні, яке надає перевагу користувачеві. Для команд, які не є сантехнічними, це значення за замовчуванням
UTF-8. Зауважте, що якщо об’єкт стверджує, що він закодований у X, а ми виводимо в X, ми
виведе об'єкт дослівно; це означає, що недійсні послідовності в оригіналі
commit можна скопіювати на вихід.
--нотатки[= ]
Покажіть нотатки (див git-нотатки(1)), які анотують фіксацію під час показу коміту
повідомлення журналу. Це значення за замовчуванням для команд git log, git show і git whatchanged
коли в командному рядку немає параметрів --pretty, --format або --oneline.
За замовчуванням відображаються нотатки з нотаток, перерахованих у core.notesRef та
notes.displayRef змінні (або відповідні заміни середовища). Побачити git-config(1)
для більш докладної інформації.
З необов’язковим аргумент, показувати цю нотатку ref замість приміток за замовчуванням
ref(s). Посилання вказує повне посилання, коли воно починається з refs/notes/; коли це
починається з notes/, refs/, а в іншому випадку refs/notes/ має префікс для утворення повної назви
реф.
Кілька параметрів --notes можна комбінувати, щоб контролювати, які нотатки відображаються.
Приклади: "--notes=foo" покаже лише нотатки з "refs/notes/foo"; "--notes=foo
--notes" показуватиме як нотатки з "refs/notes/foo", так і примітки за замовчуванням ref(s).
--ні-нотаток
Не показувати нотатки. Це скасовує наведену вище опцію --notes, скидаючи список
нотатки посилання, з яких показані примітки. Параметри аналізуються в порядку, наведеному на
командний рядок, тож, наприклад, "--notes --notes=foo --no-notes --notes=bar" відображатиметься лише
нотатки з "refs/notes/bar".
--show-notes[= ], --[ні-]стандартні примітки
Ці параметри не підтримуються. Натомість використовуйте наведені вище параметри --notes/--no-notes.
--показати-підпис
Перевірте дійсність підписаного об’єкта фіксації, передавши підпис у gpg --verify
і показати вихід.
-- відносна дата
Синонім для --date=relative.
--дата=
Набирає чинності лише для дат, показаних у форматі, зрозумілому людині, наприклад, при використанні
-- гарна. Змінна конфігурації log.date встановлює значення за замовчуванням для команди log --date
варіант. За замовчуванням дати відображаються в оригінальному часовому поясі (або фіксатора, або
авторський). Якщо до формату додається -local (наприклад, iso-local), локальний параметр користувача
замість нього використовується часовий пояс.
--date=relative показує дати відносно поточного часу, наприклад «2 години тому». The
Параметр -local не можна використовувати з --raw або --relative.
--date=local є псевдонімом для --date=default-local.
--date=iso (або --date=iso8601) показує часові позначки у форматі, подібному до ISO 8601. The
Відмінності від строгого формату ISO 8601:
· пробіл замість роздільника дати/часу T
· простір між часом і часовим поясом
· відсутність двокрапки між годинами та хвилинами часового поясу
--date=iso-strict (або --date=iso8601-strict) показує часові позначки у строгому ISO 8601
Формат.
--date=rfc (або --date=rfc2822) показує часові позначки у форматі RFC 2822, які часто зустрічаються в
повідомлення електронної пошти
--date=short показує лише дату, але не час у форматі РРРР-ММ-ДД.
--date=raw показує дату у внутрішньому необробленому форматі Git %s %z форматі.
--date=format:... передає формат ... у вашу систему strftime. Використовуйте --date=format:%c
щоб показати дату у бажаному форматі вашої системи. Дивіться посібник strftime
повний список заповнювачів формату. При використанні -local правильний синтаксис
--date=format-local:....
--date=default є форматом за замовчуванням і подібний до --date=rfc2822, з кількома
винятки:
· після дня тижня коми немає
· часовий пояс опускається, якщо використовується місцевий часовий пояс
--батьки
Надрукуйте також батьків коміту (у формі "батька фіксації..."). Також дозволяє
батьківське переписування, див Історія Спрощення нижче.
--діти
Надрукуйте також дочірні елементи коміту (у формі "commit child..."). Також дозволяє
батьківське переписування, див Історія Спрощення нижче.
--ліво право
Позначте, з якої сторони симетричного diff можна досягти коміту. Здійснює зліва
Сторони мають префікс <, а праворуч – >. Якщо поєднується з --boundary,
ці коміти мають префікс -.
Наприклад, якщо у вас є така топологія:
y---b---b гілка B
/ \ /
/.
/ / \
o---x---a---гілка А
ви отримаєте такий результат:
$ git rev-list --left-right --boundary --pretty=oneline A...B
>ббббб... 3-й на б
>ббббб... 2-й на б
<aaaaaaa... 3rd on a
<aaaaaaa... 2nd on a
-yyyyyyy... 1-й на б
-xx... 1-й на а
--граф
Намалюйте текстове графічне представлення історії комітів зліва
виходу. Це може призвести до друку додаткових рядків між комітами в порядку
щоб історія графіка була правильно намальована. Не можна поєднувати з --no-walk.
Це дозволяє перезаписувати батьків, див Історія Спрощення нижче.
Це передбачає параметр --topo-order за замовчуванням, але параметр --date-order також може
бути уточненим.
--show-linear-break[= ]
Коли --graph не використовується, усі гілки історії вирівнюються, що може ускладнити його виконання
переконайтеся, що два послідовних фіксації не належать до лінійної гілки. Цей варіант
в цьому випадку між ними створюється бар’єр. Якщо вказано, це
рядок, який буде показано замість стандартного.
Різниця форматування
Нижче наведено параметри, які керують форматуванням виводу diff. Деякі з них є
специфічні для git-rev-list(1), однак можуть бути вказані інші варіанти відмінності. Побачити git-diff-
файли(1) для отримання додаткових опцій.
-c
За допомогою цього параметра вихідні дані diff для коміту злиття показують відмінності від кожного з них
батьки до результату злиття одночасно замість показу попарного різницю
між батьком і результатом по одному. Крім того, він перераховує лише файли, які
були змінені від усіх батьків.
--cc
Цей прапор передбачає опцію -c і додатково стискає вихід патча, пропускаючи
нецікаві шматки, вміст яких у батьків має лише два варіанти і злиття
результат вибирає один з них без змін.
-m
Цей прапор змушує коміти злиття відображати повну різницю, як звичайні коміти; для кожного
об’єднати батьківський елемент, генерується окремий запис журналу та diff. Виняток становить лише це
різниця проти першого батька відображається, коли задано параметр --first-parent; у цьому
У випадку, вихідні дані представляють зміни, внесені злиттям в тодішній
філія
-r
Показати рекурсивні відмінності.
-t
Показати об’єкти дерева у вихідних даних diff. Це означає -r.
ПРЕТЕТ ФОРМАТИ
Якщо коміт є злиттям, а якщо досить формат — ні один рядок, e-mail or сировина,
додатковий рядок вставляється перед Автор: лінія. Цей рядок починається з "Merge: " і
ша1 родових комітів друкуються, розділені пробілами. Зауважимо, що перераховані
commits може не обов’язково бути списком прямий батьківські зобов’язання, якщо у вас є обмеження
ваш погляд на історію: наприклад, якщо вас цікавлять лише зміни, пов’язані з a
певний каталог або файл.
Існує кілька вбудованих форматів, і ви можете визначити додаткові формати, встановивши параметр a
гарненько. config до іншого імені формату, або a формат: рядок, як
описано нижче (див git-config(1)). Ось деталі вбудованих форматів:
· один рядок
Це розроблено, щоб бути максимально компактним.
· коротка
здійснити
Автор:
· середа
здійснити
Автор:
Дата:
· Повний
здійснити
Автор:
Здійснити:
· повніше
здійснити
Автор:
Дата автора:
Здійснити:
Дата фіксації:
Від
Від:
Дата:
Тема: [ПАТЧ]
· сировина
Команда сировина format показує весь коміт точно так, як він зберігається в об'єкті фіксації.
Примітно, що SHA-1 відображаються повністю, незалежно від того, --abbrev чи
--но-скорочення використовуються, і батьки інформація показує справжні батьківські коміти, без
беручи до уваги трансплантати або спрощення історії. Зауважте, що цей формат впливає
спосіб відображення комітів, але не спосіб відображення diff, наприклад, у журналі git
--сирий. Щоб отримати повні назви об’єктів у необробленому форматі diff, використовуйте --no-abbrev.
· формат:
Команда формат: формат дозволяє вказати, яку інформацію ви хочете показати.
Він працює трохи як формат printf, за тим помітним винятком, що ви отримуєте a
новий рядок з %n замість \n.
наприклад, формат: «The автор of %h було %an, %ar%nThe назву було >>%s<<%n" показав би
щось на зразок цього:
Автором fe6e0ee був Хуніо Сі Хамано 23 години тому
Заголовок був >>t4119: тест автообчислення -p для традиційного введення diff.<
Заповнювачами є:
· %H: фіксувати хеш
· %h: скорочений хеш фіксації
· %T: хеш дерева
· %t: скорочений хеш дерева
· %P: батьківські хеші
· %p: скорочені вихідні хеші
· %ан: ім'я автора
· %aN: ім'я автора (з дотриманням .mailmap, див git-shortlog(1) або git-винуватий(1))
· %ae: електронна адреса автора
· %aE: електронна адреса автора (з дотриманням .mailmap, див git-shortlog(1) або git-винуватий(1))
· %оголошення: дата автора (формат дотримується параметра --date=)
· %aD: дата автора, стиль RFC2822
· %ar: дата автора, родич
· % на: дата автора, мітка часу UNIX
· %ai: дата автора, формат, подібний до ISO 8601
· %aI: дата автора, строгий формат ISO 8601
· %cn: ім'я комітента
· %cN: ім'я комітера (з дотриманням .mailmap, див git-shortlog(1) або git-винуватий(1))
· %ce: електронна пошта комітера
· %cE: електронна пошта комітера (з дотриманням .mailmap, див git-shortlog(1) або git-винуватий(1))
· %cd: дата скоєння (формат дотримується параметра --date=)
· %cD: дата фіксатора, стиль RFC2822
· %кр: дата вчинення, родич
· %ct: дата фіксатора, мітка часу UNIX
· %ci: дата фіксації, формат, подібний до ISO 8601
· %cI: дата фіксації, строгий формат ISO 8601
· %d: імена посилань, як-от параметр --decorate git-log(1)
· %D: імена посилань без обгортки " (", ")".
· %e: кодування
· %s: предмет
· %f: очищена тема, підходить для імені файлу
· %b: тіло
· %B: необроблене тіло (незагорнуті предмет і тіло)
· %N: фіксувати примітки
· %GG: необроблене повідомлення про підтвердження від GPG для підписаного коміту
· %G?: показати «G» для хорошого підпису, «B» для поганого підпису, «U» для хорошого,
недовірений підпис і "N" для відсутності підпису
· %GS: показати ім'я підписувача для підписаного коміту
· %GK: показати ключ, який використовується для підписання підписаного коміту
· %gD: селектор reflog, наприклад, refs/stash@{1}
· %gd: скорочений селектор reflog, наприклад, stash@{1}
· %gn: ім'я ідентифікатора reflog
· %gN: ім'я ідентифікатора reflog (з дотриманням .mailmap, див git-shortlog(1) або git-
звинувачувати(1))
· %ge: reflog identity email
· %gE: reflog ідентифікатор електронної пошти (з дотриманням .mailmap, див git-shortlog(1) або git-
звинувачувати(1))
· %gs: тема reflog
· % Кред: змінити колір на червоний
· %Cзелений: змінити колір на зелений
· %Cсиній: змінити колір на синій
· %Creset: скинути колір
· %C(...): специфікація кольору, як описано в параметрі конфігурації color.branch.*; додавання
auto, спочатку видаватиме колір лише тоді, коли кольори ввімкнено для виведення журналу
(за color.diff, color.ui або --color, з дотриманням автоматичних налаштувань
колишній, якщо ми йдемо до терміналу). автоматично (тобто %C(auto)) увімкнеться
автоматичне фарбування на наступних заповнювачах, доки колір не буде знову змінено.
· %m: лівий, правий або межовий знак
· %n: новий рядок
· %%: сирий %
· %x00: надрукувати байт із шістнадцяткового коду
· %w([ [, [, ]]]): перемикання рядків, як і параметр -w git-
короткий журнал(1).
· %<( [,trunc|ltrunc|mtrunc]): зробити наступний заповнювач принаймні N стовпців,
пробіли праворуч, якщо необхідно. За бажанням обрізати на початку
(ltrunc), середина (mtrunc) або кінець (trunc), якщо вихід довший за N
колонки. Зауважте, що скорочення працює правильно лише з N >= 2.
· %<|( ): зробити наступний заповнювач принаймні до N-го стовпця, заповнення
пробіли праворуч, якщо необхідно
· %>( ), %>|( ): схожий на %<( ), %<|( ) відповідно, але пробіли заповнення
зліва
· %>>( ), %>>|( ): схожий на %>( ), %>|( ) відповідно, за винятком того, що якщо
наступний заповнювач займає більше пробілів, ніж вказаний, і є пробіли зліва,
використовувати ці місця
· %><( ), %><|( ): схожий на % <( ), %<|( ) відповідно, але заповнення обох
сторони (тобто текст по центру)
Примітка:
Деякі заповнювачі можуть залежати від інших параметрів, наданих механізму обходу ревізій.
Наприклад, параметри reflog %g* вставлятимуть порожній рядок, якщо ми не вставимо
обхід записів reflog (наприклад, за допомогою git log -g). Використовуватиметься заповнювачі %d і %D
"короткий" формат декорування, якщо --decorate ще не було надано в команді
лінія.
Якщо ви додасте + (знак плюс) після % заповнювача негайно вставляється переведення рядка
перед розширенням тоді і тільки тоді, коли заповнювач розгортається до непорожнього рядка.
Якщо ви додасте - (знак мінус) після % заповнювача, переходи рядка, які безпосередньо передують
розширення видаляються тоді і тільки тоді, коли заповнювач розгортається до порожнього рядка.
Якщо додати ` ` (пробіл) після % заповнювача, пробіл вставляється безпосередньо перед
розширення тоді і тільки тоді, коли заповнювач розгортається до непорожнього рядка.
· формат:
Команда формат: формат працює точно так само формат:, за винятком того, що він надає "термінатор"
семантика замість семантики «роздільник». Іншими словами, кожен коміт має
додається символ закінчення повідомлення (зазвичай новий рядок), а не роздільник
розміщені між записами. Це означає, що остаточний запис однорядкового формату буде
бути належним чином закінчено новим рядком, як це робить формат "oneline". Для
приклад:
$ git log -2 --pretty=format:%h 4da45bef \
| perl -pe '$_ .= " -- БЕЗ НОВИНКИ\n", якщо /\n/'
4da45be
7134973 -- БЕЗ НОВИНКИ
$ 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
ЗАГАЛЬНИЙ РІЗНИЦЯ ВАРІАНТИ
-p, -u, --патч
Створити патч (див. розділ про створення патчів).
-s, --no-patch
Придушити вихід diff. Корисно для таких команд, як git show, які показують виправлення
за замовчуванням, або для скасування ефекту --patch.
-У , --unified=
Створити відмінності за допомогою рядки контексту замість звичайних трьох. Має на увазі -p.
-сирий
Для кожного коміту покажіть підсумок змін, використовуючи необроблений формат diff. Дивіться розділ «RAW
ФОРМАТ ВИВОДУ» розділу git-diff(1). Це відрізняється від показу самого журналу
у необробленому форматі, якого можна досягти за допомогою --format=raw.
--patch-with-raw
Синонім до -p --сирий.
--мінімальний
Витратьте додатковий час, щоб переконатися, що виникла найменша можлива різниця.
--терпіння
Згенеруйте відмінність за допомогою алгоритму "різниця терпіння".
--гістограма
Згенеруйте відмінність за допомогою алгоритму "гістограми diff".
--diff-algorithm={терпіння|мінімальна|гістограма|майерс}
Виберіть алгоритм diff. Варіанти такі:
за замовчуванням, Майерс
Основний алгоритм жадібних відмінностей. Наразі це значення за замовчуванням.
мінімальний
Витратьте додатковий час, щоб переконатися, що виникла найменша можлива різниця.
терпіння
Використовуйте алгоритм «терпіння відмінності» під час створення патчів.
гістограма
Цей алгоритм розширює алгоритм терпіння, щоб «підтримувати поширені низькі випадки
елементи".
Наприклад, якщо ви налаштували змінну diff.algorithm на значення, відмінне від умовчання, і
якщо ви хочете використовувати параметр за замовчуванням, то вам доведеться скористатися параметром --diff-algorithm=default.
--stat[= [, [, ]]]
Згенеруйте diffstat. За замовчуванням для цього буде використано стільки місця, скільки необхідно
частина імені файлу, а решта для частини графіка. Максимальна ширина за замовчуванням дорівнює терміналу
ширина або 80 стовпців, якщо вони не підключені до терміналу, і їх можна замінити .
Ширину частини імені файлу можна обмежити, задавши іншу ширину
після коми. Ширину частини графіка можна обмежити за допомогою
--stat-graph-width= (впливає на всі команди, які генерують графік статистики) або by
встановлення diff.statGraphWidth= (не впливає на git format-patch). Даючи а
третій параметр , ви можете обмежити вихід першим рядків, слідом
до ... якщо їх більше.
Ці параметри також можна встановити окремо за допомогою --stat-width= ,
--stat-name-width= і --stat-count= .
--numstat
Подібний до --stat, але показує кількість доданих і видалених рядків у десятковому записі та
ім'я шляху без скорочення, щоб зробити його більш зручним для машин. Для бінарних файлів,
виводить два - замість того, щоб сказати 0 0.
--shortstat
Виведіть лише останній рядок формату --stat, що містить загальну кількість змінених
файлів, а також кількість доданих і видалених рядків.
--dirstat[= ]
Вивести розподіл відносної кількості змін для кожного підкаталогу. The
поведінку --dirstat можна налаштувати, передавши йому список, розділений комами
параметри. Значення за замовчуванням контролюються конфігураційною змінною diff.dirstat
(Див. git-config(1)). Доступні наступні параметри:
зміни
Обчисліть номери dirstat, підрахувавши рядки, які були вилучені з
джерело або додано до місця призначення. При цьому ігнорується кількість чистого коду
рухів у файлі. Іншими словами, перевпорядкування рядків у файлі ні
враховано стільки ж, скільки й інші зміни. Це поведінка за замовчуванням, якщо параметра немає
дається.
lines
Обчисліть числа dirstat, виконуючи звичайний рядковий аналіз відмінностей, і
підсумовуючи кількість видалених/доданих рядків. (Для двійкових файлів підрахуйте 64-байтні шматки
натомість, оскільки двійкові файли не мають природного поняття рядків). Це більше
дорогий --dirstat поведінки, ніж зміни поведінки, але це враховується
змінено рядки у файлі так само, як і інші зміни. Отриманий вихід є
відповідає тому, що ви отримуєте від інших параметрів --*stat.
файли
Обчисліть номери dirstat, підрахувавши кількість змінених файлів. Кожен змінився
файл однаково враховується в аналізі dirstat. Це найдешевший у обчислювальному відношенні
--dirstat поведінка, оскільки йому не потрібно дивитися на вміст файлу взагалі.
кумулятивний
Також підрахуйте зміни в дочірньому каталозі для батьківського каталогу. Зауважте, що
при використанні кумулятивної суми зазначених відсотків може перевищувати 100%. The
Поведінка за замовчуванням (некумулятивна) може бути визначена за допомогою некумулятивної
параметр.
Цілочисельний параметр визначає відсоток відсікання (3% за замовчуванням). Довідники
які вносять менший відсоток змін, не відображаються в результатах.
Приклад. Нижче наведено підрахунок змінених файлів, ігноруючи каталоги з меншою кількістю
більше ніж 10% від загальної кількості змінених файлів, а також кількість дочірніх каталогів
у батьківських каталогах: --dirstat=files,10,кумулятивний.
-- резюме
Виведіть стислий підсумок розширеної інформації заголовка, наприклад, створення, перейменування
і зміни режиму.
--patch-with-stat
Синонім до -p --stat.
-z
Розділіть коміти NUL замість нових рядків.
Крім того, коли було дано --raw або --numstat, не змінюйте імена шляхів і використовуйте NUL як
термінатори вихідного поля.
Без цього параметра кожен вихідний шлях матиме TAB, LF, подвійні лапки та
символи зворотної косої риски замінені на \t, \n, \", і \\ відповідно, а також ім'я шляху
буде взятий у подвійні лапки, якщо відбулася будь-яка з цих замін.
-лише ім'я
Показувати лише назви змінених файлів.
--ім'я-статус
Показувати лише імена та статус змінених файлів. Дивіться опис --diff-filter
варіант щодо того, що означають літери статусу.
--підмодуль[= ]
Укажіть, як відображаються відмінності в підмодулях. Коли --submodule або --submodule=log
дається, журнал використовується формат. Цей формат перераховує коміти в діапазоні, як git-
підмодуль(1) резюме робить. Пропускаємо параметр --submodule або вказуємо
--submodule=short, використовує коротка формат. Цей формат показує лише назви
фіксує на початку і в кінці діапазону. Можна налаштувати за допомогою diff.submodule
змінна конфігурації.
--колір[= ]
Показати різницю кольорів. --колір (тобто без =) те саме, що --color=always.
може бути одним із завжди, ніколи або автоматично.
--без кольору
Вимкніть різницю кольорів. Це те саме, що --color=never.
--word-diff[= ]
Покажіть слово diff, використовуючи розмежувати змінені слова. За замовчуванням слова є
розділені пробілами; див. --word-diff-regex нижче. The за замовчуванням простий,
і має бути одним із:
color
Виділіть змінені слова, використовуючи лише кольори. Має на увазі -- колір.
простий
Показати слова як [-removed-] і {+додано+}. Не робить жодних спроб втекти
роздільники, якщо вони з'являються у вхідних даних, тому вихід може бути неоднозначним.
фарфор
Використовуйте спеціальний формат на основі рядків, призначений для використання сценаріїв.
Додані/видалені/незмінені цикли друкуються у звичайному уніфікованому форматі diff,
починаючи зі символу +/-/` ` на початку рядка і продовжуючи до
кінець рядка. Новий рядок у вхідних даних позначається тильдою ~ на рядку
власних.
ніхто
Знову вимкнути дифференцію слів.
Зверніть увагу, що незважаючи на назву першого режиму, колір використовується для виділення змінених
частин у всіх режимах, якщо ввімкнено.
--word-diff-regex=
Використовуйте щоб визначити, що таке слово, замість того, щоб розглядати ряди непробілів
будь словом. Також має на увазі --word-diff, якщо він уже не був увімкнений.
Кожен матч, який не перетинається вважається словом. Що-небудь між
ці збіги вважаються пробілами та ігноруються(!) для цілей пошуку
відмінності. Ви можете додати |[^[:space:]] до свого регулярного виразу, щоб зробити
переконайтеся, що він відповідає всім символам, які не є пробілами. Збіг, який містить новий рядок
безшумно усічений(!) у новому рядку.
Наприклад, --word-diff-regex=. буде розглядати кожен символ як слово і,
відповідно, показувати відмінності по характеру.
Регулярний вираз також можна встановити за допомогою драйвера diff або параметра конфігурації, див
gitattributes(1) або git-config(1). Надання його явно перевизначає будь-який драйвер diff або
налаштування конфігурації. Драйвери Diff замінюють налаштування конфігурації.
--color-words[= ]
Еквівалент --word-diff=color plus (якщо вказано регулярний вираз)
--word-diff-regex= .
--без перейменування
Вимкніть виявлення перейменування, навіть якщо конфігураційний файл надає значення за замовчуванням
так.
--перевірте
Попереджати, якщо зміни призводять до помилок пробілів. Помилки пробілів вважаються
керується конфігурацією core.whitespace. За замовчуванням кінцеві пробіли
(включаючи рядки, які складаються виключно з пробілів) і пробіл
відразу за яким слід символ табуляції всередині початкового відступу рядка
розглядаються помилки пробілів. Виходить із ненульовим статусом, якщо виявлено проблеми. ні
сумісний з --exit-code.
--ws-error-highlight=
Виділіть помилки пробілів у рядках, визначених у кольорі, визначеному
color.diff.whitespace. – це розділений комами список старого, нового контексту. Коли
ця опція не надається, лише підсвічуються помилки пробілів у нових рядках. напр
--ws-error-highlight=новий,старий виділяє помилки пробілів як для видалених, так і для доданих
лінії. all можна використовувати як скорочення для старого, нового, контексту.
--повний індекс
Замість першої жмені символів покажіть повну крапку до та після зображення
імена об'єктів у рядку "індекс" під час генерації виходу у форматі виправлення.
-- двійковий
На додаток до --full-index, виведіть двійковий diff, який можна застосувати за допомогою git-apply.
--скорочено[= ]
Замість того, щоб показувати повне 40-байтове шістнадцяткове ім’я об’єкта у форматі diff-raw
і рядки заголовків дерева diff, показують лише частковий префікс. Це не залежить від
Опція --full-index вище, яка керує форматом виведення diff-patch. Не за замовчуванням
кількість цифр можна вказати за допомогою --abbrev= .
-B[ ][/ ], --break-rewrites[=[ ][/ ]]
Розбийте повні зміни перезапису на пари видалення та створення. Це служить двом
цілі:
Це впливає на те, як зміна, яка дорівнює повному перезапису файлу, а не серії
видалення та вставки змішано разом із кількома рядками, які збігаються
текстово як контекст, але як єдине видалення всього старого, за яким слідує a
одна вставка всього нового, а число m контролює цей аспект -B
опція (за замовчуванням 60%). -B/70% вказує, що має бути менше 30% оригіналу
залишиться в результаті для Git, щоб вважати його повним перезаписом (тобто інакше
отриманий патч буде серією видалення та вставки, змішаної разом із контекстом
лінії).
При використанні з -M повністю перезаписаний файл також розглядається як джерело a
перейменувати (зазвичай -M розглядає лише файл, який зник, як джерело перейменування),
а число n контролює цей аспект параметра -B (за замовчуванням 50%). -B20%
вказує, що зміна з додаванням і видаленням порівняно з 20% або більше
розмір файлу можна вибрати як можливе джерело перейменування
інший файл.
-М[ ], --знайти-імена[= ]
Якщо генеруються відмінності, виявляйте та повідомляйте про перейменування для кожного коміту. Для наступних файлів
через перейменування під час проходження історії, див. --follow. Якщо вказано n, це a
поріг індексу подібності (тобто кількість додавання/видалення порівняно з
розмір файлу). Наприклад, -M90% означає, що Git повинен розглядати пару видалення/додавання як a
перейменувати, якщо більше 90% файлу не змінилося. Без знаку % число означає до
читається як дріб, перед ним стоїть десяткова кома. Тобто -M5 стає 0.5 і є
таким чином те саме, що -M50%. Аналогічно, -M05 те саме, що -M5%. Щоб обмежити виявлення
точні перейменування, використовуйте -M100%. Індекс подібності за замовчуванням становить 50%.
-C[ ], --find-copies[= ]
Виявлення копій, а також перейменування. Дивіться також --find-copies-harder. Якщо вказано n, це
має те саме значення, що і для -M .
--знайти-копії-складніше
З міркувань продуктивності за замовчуванням параметр -C знаходить копії, лише якщо вихідний файл
копії було змінено в тому самому наборі змін. Цей прапор змушує команду перевіряти
незмінені файли як кандидати на джерело копіювання. Це дуже дорого
для великих проектів, тому використовуйте його з обережністю. Надання більше одного параметра -C
має такий самий ефект.
-D, --необоротно-видалити
Пропустіть попереднє зображення для видалення, тобто надрукуйте лише заголовок, але не розбіжність між
preimage та /dev/null. Отриманий пластир не призначений для застосування разом із пластиром або
git apply; це лише для тих, хто хоче зосередитися на перегляді
текст після зміни. Крім того, на виході, очевидно, не вистачає інформації
застосувати такий патч у зворотному порядку, навіть вручну, звідси й назва варіанта.
Якщо використовується разом з -B, пропустіть також прообраз у частині видалення a
видалити/створити пару.
-л
Опції -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 --кирка-регулярний вираз і -G , розглянути
фіксація з наступним diff у тому самому файлі:
+ повернути !regexec(регулярний вираз, два->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) для отримання додаткової інформації.
--кирка-все
Коли -S або -G знаходить зміну, показувати всі зміни в цьому наборі змін, а не тільки
файли, які містять зміни в .
--кирка-регулярний вираз
Лікувати надано -S як розширений регулярний вираз POSIX для відповідності.
-О
Виведіть патч у порядку, зазначеному в , який має одну оболонку glob
візерунок на рядок. Це замінює змінну конфігурації diff.orderFile (див git-
конфиг(1)). Щоб скасувати diff.orderFile, використовуйте -O/dev/null.
-R
Поміняти місцями два входи; тобто показувати відмінності від індексного файлу або файлу на диску до дерева
зміст.
--відносний[= ]
Під час запуску з підкаталогу проекту йому можна вказати виключити зміни за межами
каталог і показувати шляхи щодо нього за допомогою цієї опції. Коли тебе немає
підкаталогу (наприклад, у відкритому репозиторії), ви можете вказати, який підкаталог створити
вихід відносно за допомогою a як аргумент.
-a, --текст
Розглядайте всі файли як текст.
--ignore-space-at-eol
Ігноруйте зміни пробілів у EOL.
-b, --ignore-space-change
Ігноруйте зміни в кількості пробілів. Це ігнорує пробіли в кінці рядка і
вважає всі інші послідовності з одного або кількох пробілів еквівалентними.
-w, --ігнорувати-все-пробіл
Ігноруйте пробіли під час порівняння рядків. Це ігнорує відмінності, навіть якщо є один рядок
пробіл, де в іншому рядку його немає.
--ignore-blank-lines
Ігнорувати зміни, усі рядки яких порожні.
--inter-hunk-context=
Таким чином, показувати контекст між шматками diff до вказаної кількості рядків
злиття шматків, які знаходяться близько один до одного.
-W, --функція-контекст
Показати всі навколишні функції змін.
--ext-diff
Дозволити виконання зовнішнього помічника diff. Якщо ви встановите зовнішній драйвер дифференції за допомогою
gitattributes(5), вам потрібно використовувати цю опцію з git-log(1) і друзі.
--no-ext-diff
Заборонити зовнішні драйвери відмінності.
--textconv, --no-textconv
Дозволити (або заборонити) запуск зовнішніх фільтрів перетворення тексту під час порівняння двійкових файлів
файли. Побачити gitattributes(5) для деталей. Оскільки фільтри textconv зазвичай є a
одностороннє перетворення, отриманий diff придатний для споживання людиною, але не може
застосовуватися. З цієї причини фільтри textconv за замовчуванням увімкнені лише для git-
різниця(1) і git-log(1), але не для git-format-patch(1) або команди диф.
--ignore-submodules[= ]
Ігноруйте зміни до підмодулів у генерації diff. може бути або "немає",
"невідстежуваний", "брудний" або "все", що є за замовчуванням. Використання "none" розглядатиме
підмодуль змінюється, якщо він містить невідстежувані або змінені файли або його HEAD
відрізняється від фіксації, записаної в суперпроекті, і може використовуватися для перевизначення будь-якого
налаштування ігнорувати варіант в git-config(1) або gitmodules(5). Коли "невідстежується".
Використані підмодулі не вважаються брудними, якщо вони містять лише невідстежуваний вміст (але
вони все ще скануються на предмет зміненого вмісту). Використання "брудного" ігнорує всі зміни в файлі
робоче дерево підмодулів, є лише зміни до комітів, що зберігаються в суперпроекті
показано (така поведінка була до 1.7.0). Використання "усі" приховує всі зміни до
підмодулі.
--src-prefix=
Показати вказаний вихідний префікс замість "a/".
--dst-prefix=
Показати вказаний префікс призначення замість "b/".
--без префікса
Не показувати префікс джерела чи призначення.
Щоб отримати докладніші пояснення щодо цих поширених параметрів, див gitdiffcore(7).
ГЕНЕРУЮЧИЙ ЛІПКИ З -P
Коли "git-diff-index", "git-diff-tree" або "git-diff-files" запускаються з -p варіант «git
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/
назви файлів.
Коли задіяно перейменування/копіювання, файли 1 і файл 2 показують назву вихідного файлу
rename/copy та ім'я файлу, який створюється rename/copy, відповідно.
2. Після нього один або кілька розширених рядків заголовка:
старий режим
новий режим
режим видаленого файлу
новий режим файлу
копія з
копіювати до
перейменувати з
перейменувати на
індекс подібності
індекс несхожості
індекс ..
Режими файлів друкуються як 6-значні вісімкові числа, включаючи тип файлу та файл
біти дозволу.
Назви шляхів у розширених заголовках не містять префіксів a/ та b/.
Індекс подібності — це відсоток незмінних рядків, а індекс несхожості
– відсоток змінених рядків. Це ціле число, округлене до меншого, за яким слідує a
знак відсотка. Таким чином, значення індексу подібності 100% зарезервовано для двох однакових файлів,
тоді як 100% несхожість означає, що жоден рядок зі старого файлу не потрапив у новий
один.
Рядок індексу містить контрольну суму SHA-1 до та після зміни. The є
включено, якщо режим файлу не змінюється; інакше окремі рядки вказують на старий
і новий режим.
3. Символи TAB, LF, подвійних лапок і зворотної косої риски в іменах шляхів представлені як \t, \n,
\" і \\ відповідно. Якщо є потреба в такій заміні, то ціле
ім'я шляху поміщається в подвійні лапки.
4. Усі файли file1 у виводі посилаються на файли перед фіксацією, а всі файли file2
файли посилаються на файли після фіксації. Застосовувати кожну зміну до кожного неправильно
файл послідовно. Наприклад, цей патч поміняє місцями a і b:
diff --git a/ab/b
перейменувати з a
перейменувати на b
diff --git a/bb/a
перейменувати з б
перейменувати на а
КОМБІНОВАНИЙ РІЗНИЦЯ ФОРМАТ
Будь-яка команда, що генерує відмінності, може використовувати параметр -c або --cc для створення a комбінований різниця коли
показує злиття. Це формат за замовчуванням під час показу об’єднань з git-diff(1) або git-
Показувати(1). Зауважте також, що ви можете надати параметр -m будь-якій з цих команд для примусу
генерування відмінностей з окремими батьками злиття.
A комбінований різниця формат виглядає так:
diff --combined describe.c
індекс fabadb8,cc95eb0..4866510
--- a/describe.c
+++ b/describe.c
@@@ -98,20 -98,12 +98,20 @@@
повернення (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}
- static void describe (char *arg)
-static void describe (struct commit *cmit, int last_one)
++ static void describe (char *arg, int last_one)
{
+ непідписаний char sha1[20];
+ struct commit *cmit;
struct commit_list *список;
static int ініціалізовано = 0;
struct commit_name *n;
+ if (get_sha1(arg, sha1) < 0)
+ використання(описати_використання);
+ cmit = lookup_commit_reference(sha1);
+ якщо (!cmit)
+ використання(описати_використання);
+
якщо (!ініціалізовано) {
ініціалізовано = 1;
for_each_ref(get_name);
1. Йому передує заголовок "git diff", який виглядає так (коли -c опція
використано):
diff --комбінований файл
або так (коли --cc використовується варіант):
diff --cc файл
2. За ним йдуть один або кілька розширених рядків заголовка (у цьому прикладі показано злиття з
двоє батьків):
індекс , ..
режим , ..
новий режим файлу
режим видаленого файлу ,
Режим , .. рядок з’являється, лише якщо хоча б один із є
відрізняється від решти. Розширені заголовки з інформацією про виявлений вміст
переміщення (перейменування та виявлення копіювання) призначені для роботи з різницею двох
і не використовуються комбінованим форматом diff.
3. Після цього дворядковий заголовок файлу/файлу
--- файл
+++ b/файл
Аналогічно дворядковому заголовку для традиційного єдиний формат diff, до якого використовується /dev/null
сигнал створених або видалених файлів.
4. Формат заголовка блоку змінено, щоб люди не випадково передали його
патч -p1. Комбінований формат diff був створений для перегляду змін фіксації злиття, і
не був призначений для застосування. Зміна подібна до зміни розширеного індекс
заголовок:
@@@ @@@
У заголовку блоку є символи @ (кількість батьків + 1) для комбінованої відмінності
Формат.
На відміну від традиційного єдиний diff, який показує два файли A і B з одним
стовпець, який має - (мінус — з’являється в A, але видаляється в B), + (плюс — відсутній в A, але
додано до B), або префікс " " (пробіл — незмінний), цей формат порівнює два або більше файлів
file1, file2,... з одним файлом X і показує, чим X відрізняється від кожного з файлів N. Одна колонка
для кожного з fileN додається до вихідного рядка, щоб відзначити, чим рядок X відрізняється від
його.
A - символ у стовпці N означає, що рядок з'являється у файлі N, але не з'являється
в результаті. Символ + у стовпці N означає, що рядок з'являється в результаті,
і fileN не має цього рядка (іншими словами, рядок було додано з точки
погляд цього батька).
У наведеному вище прикладі виведення сигнатуру функції було змінено з обох файлів (отже, двох
- видалення як із file1, так і з file2, плюс ++, що означає, що один доданий рядок не робить
відображаються у файлі1 або у файлі2). Також вісім інших рядків є такими ж із file1, але так
не відображаються у файлі 2 (тому з префіксом +).
Коли його показує git diff-tree -c, він порівнює батьків коміту злиття із злиттям
результат (тобто file1..fileN є батьками). Коли його показує git diff-files -c, він порівнює
два невирішених батьківських елемента злиття з робочим файлом дерева (тобто файл 1 є етапом 2 aka
"наша версія", file2 - це етап 3, він же "їхня версія").
ПРИКЛАДИ
git log --no-merges
Показати всю історію комітів, але пропустити будь-які злиття
git log v2.6.12.. include/scsi drivers/scsi
Показати всі коміти з версії v2.6.12 який змінив будь-який файл у include/scsi або
драйвери/підкаталоги scsi
git log --since="2 тижні тому" -- gitk
Показати зміни у файлі за останні два тижні gitk. «--» необхідно
уникайте плутанини з філія названий gitk
git log --name-status release..test
Показати коміти, які є у гілці "test", але ще не у гілці "release",
разом зі списком шляхів, які змінює кожен коміт.
git log --follow builtin/rev-list.c
Показує коміти, які змінили builtin/rev-list.c, включаючи ті коміти, які
відбулося до того, як файлу було присвоєно його поточну назву.
git log --branches --not --remotes=origin
Показує всі коміти, які є в будь-якій локальній гілці, але не в жодній з віддаленого відстеження
відділення для походження (те, що у вас таке походження, ні).
git log master --not --remotes=*/master
Показує всі коміти, які є в локальному майстер, але не в будь-якому віддаленому головному сховищі
гілки.
git log -p -m --перший-батько
Показує історію, включаючи відмінності змін, але лише з точки зору «головної гілки»,
пропуск комітів, які надходять із об’єднаних гілок, і показ повних відмінностей змін
запроваджено шляхом злиття. Це має сенс лише при дотриманні суворої політики
об'єднання всіх гілок теми, залишаючись на одній гілці інтеграції.
git log -L '/int main/',/^}/:main.c
Показує, як функція main() у файлі main.c розвивалася з часом.
git log -3
Обмежує кількість комітів для показу до 3.
ОБГОВОРЕННЯ
Git певною мірою не залежить від кодування символів.
· Вміст об'єктів BLOB - це неінтерпретовані послідовності байтів. Немає
кодування перекладу на базовому рівні.
· Назви шляхів кодуються у формі нормалізації UTF-8 C. Це стосується об'єктів дерева,
файл індексу, імена посилань, а також імена шляхів у аргументах командного рядка,
змінні середовища та файли конфігурації (.git/config (див git-config(1)), гітигнорувати(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. мерзотник commit та мерзотник дерево комітів видає попередження, якщо надане йому повідомлення журналу фіксації
не виглядає як дійсний рядок UTF-8, якщо ви явно не вкажете, що ваш проект використовує a
застаріле кодування. Щоб сказати це, потрібно мати i18n.commitencoding у .git/config
файл, наприклад:
[i18n]
кодування комітів = ISO-8859-1
Об’єкти фіксації, створені з наведеним вище параметром, записують значення i18n.commitencoding
у його заголовку кодування. Це допоможе іншим людям, які пізніше подивляться на них. Відсутність
цей заголовок означає, що повідомлення журналу фіксації закодовано в UTF-8.
2. мерзотник журнал, мерзотник Показувати, мерзотник звинувачувати і друзі дивляться на заголовок кодування коміту
об’єкта та спробуйте перекодувати повідомлення журналу в UTF-8, якщо не вказано інше. ти
може вказати потрібне кодування вихідних даних за допомогою i18n.logoutputencoding у .git/config
файл, наприклад:
[i18n]
кодування вихідних даних = ISO-8859-1
Якщо у вас немає цієї змінної конфігурації, значення i18n.commitencoding таке
використовується замість цього.
Зауважте, що ми свідомо вирішили не перекодувати повідомлення журналу фіксації, коли є фіксація
зроблено для примусового використання UTF-8 на рівні об’єкта фіксації, оскільки перекодування на UTF-8 не є
обов'язково оборотна операція.
КОНФІГУРАЦІЯ
Читати git-config(1) для основних змінних і git-diff(1) для налаштувань, пов’язаних із диф
покоління
формат.красива
За замовчуванням для параметра --format. (Побачити досить Формати вище.) За замовчуванням середній.
i18n.logOutputEncoding
Кодування для використання під час відображення журналів. (Побачити Обговорення вище.) За замовчуванням встановлено значення
i18n.commitEncoding, якщо встановлено, і UTF-8 інакше.
log.date
Формат за замовчуванням для дат, зрозумілих людині. (Порівняйте параметр --date.) За замовчуванням
"за замовчуванням", що означає введення дат, як-от сб 8 травня 19:35:34 2010 -0500:XNUMX.
log.follow
Якщо значення true, git log буде діяти так, як якщо б параметр --follow був використаний, коли одиночний є
дано. Це має ті самі обмеження, що й --follow, тобто його не можна використовувати для дотримання
кількох файлів і погано працює з нелінійною історією.
log.showRoot
Якщо false, git log і пов’язані з ним команди не розглядатимуть початковий коміт як великий
створення події. Будь-які кореневі фіксації у вихідних даних git log -p відображатимуться без diff
додається. За замовчуванням встановлено значення true.
поштова карта.*
Читати git-shortlog(1).
notes.displayRef
Які посилання, на додаток до стандартних, встановлених core.notesRef або GIT_NOTES_REF, читати
нотатки під час відображення повідомлень про фіксацію з сімейством команд журналу. Побачити git-
ноти(1).
Може бути нескороченим ім’ям посилання або глобусом і може бути вказано кілька разів. А
попередження буде видано для refs, які не існують, але glob, який не відповідає жодному
refs мовчки ігнорується.
Цей параметр можна вимкнути за допомогою параметра --no-notes, заміненого за допомогою параметра
GIT_NOTES_DISPLAY_REF змінна середовища і замінюється --notes=
варіант.
GIT
Частина мерзотник(1) люкс
Використовуйте git-log онлайн за допомогою служб onworks.net