українська мова ▾ Topics ▾ Latest version ▾ git-diff last updated in 2.52.0

НАЗВА

git-diff - Показати зміни між коммітами, комітом та робочим деревом тощо

СИНОПСИС

git diff [<options>] [<commit>] [--] [<path>…​]
git diff [<options>] --cached [--merge-base] [<commit>] [--] [<path>…​]
git diff [<options>] [--merge-base] <commit> [<commit>…​] <commit> [--] [<path>…​]
git diff [<options>] <commit>...<commit> [--] [<path>…​]
git diff [<options>] <blob> <blob>
git diff [<options>] --no-index [--] <path> <path> [<pathspec>…​]

ОПИС

Відображати зміни між робочим деревом та індексом або деревом, зміни між індексом та деревом, зміни між двома деревами, зміни, що виникають в результаті злиття, зміни між двома blob-об’єктами або зміни між двома файлами на диску.

git diff [<options>] [--] [<path>...]

Ця форма призначена для перегляду змін, які ви внесли відносно індексу (область проміжного зберігання для наступного коміту). Іншими словами, відмінності – це те, що ви могли б_ сказати Git додати до індексу, але досі цього не зробили. Ви можете проміжним способом додати ці зміни, використовуючи git-add[1].

git diff [<options>] --no-index [--] <path> <path> [<pathspec>...]

Ця форма призначена для порівняння двох заданих шляхів у файловій системі. Ви можете пропустити опцію --no-index, якщо ви виконуєте команду в робочому дереві, контрольованому Git, і принаймні один зі шляхів вказує за межі робочого дерева, або якщо ви виконуєте команду за межами робочого дерева, контрольованого Git. Ця форма передбачає --exit-code. Якщо обидва шляхи вказують на каталоги, можна надати додаткові специфікації шляхів. Вони обмежать файли, що входять до різниці. Усі такі специфікації шляхів мають бути відносними, оскільки вони застосовуються до обох сторін різниці.

git diff [<options>] --cached [--merge-base] [<commit>] [--] [<path>...]

Ця форма призначена для перегляду змін, які ви проіндексували для наступного коміту відносно названого <commit>. Зазвичай вам потрібно порівняти їх з останнім комітом, тому, якщо ви не вкажете <commit>, за замовчуванням використовується значення HEAD. Якщо HEAD не існує (наприклад, ненароджені гілки) і <commit> не вказано, буде показано всі проіндексовані зміни. --staged є синонімом --cached.

Якщо вказано --merge-base, замість використання <commit> використовується база злиття <commit> та HEAD. git diff --cached --merge-base A еквівалентно git diff --cached $(git merge-base A HEAD).

git diff [<options>] [--merge-base] <commit> [--] [<path>...]

Ця форма призначена для перегляду змін у вашому робочому дереві відносно названого <commit>. Ви можете використовувати HEAD для порівняння його з останнім комітом або назву гілки для порівняння з кінчиком іншої гілки.

Якщо вказано --merge-base, замість використання <commit> використовується база злиття <commit> та HEAD. git diff --merge-base A еквівалентно git diff $(git merge-base A HEAD).

git diff [<options>] [--merge-base] <commit> <commit> [--] [<path>...]

Це для перегляду змін між двома довільними <commit>.

Якщо вказано --merge-base, використовувати базу злиття двох комітів для сторони "до". git diff --merge-base A B еквівалентно git diff $(git merge-base A B) B.

git diff [<options>] <commit> <commit>...<commit> [--] [<path>...]

Ця форма призначена для перегляду результатів коміту злиття. Перший у списку <commit> має бути самим комітом злиття; решта два або більше комітів повинні бути його батьківськими. Зручними способами створення бажаного набору ревізій є використання суфіксів @ та ^!. Якщо A є комітом злиття, то git diff A A^@, git diff A^! та git show A дають однакову комбіновану різницю.

git diff [<options>] <commit>..<commit> [--] [<path>...]

Це синонім попередньої форми (без ..) для перегляду змін між двома довільними <commit>. Якщо <commit> з одного боку пропустити, це матиме той самий ефект, що й використання HEAD замість цього.

git diff [<options>] <commit>...<commit> [--] [<path>...]

Ця форма призначена для перегляду змін у гілці, що містить <commit> і аж до другого <commit>, починаючи зі спільного предка обох <commit>. git diff A...B еквівалентно git diff $(git merge-base A B) B. Ви можете пропустити будь-який з <commit>, що матиме той самий ефект, що й використання HEAD.

Якщо ви робите щось екзотичне, слід зазначити, що всі <commit> у наведеному вище описі, за винятком випадку --merge-base та двох останніх форм, які використовують нотації .., можуть бути будь-якими <tree>. Дерево, що нас цікавить, це те, на яке вказує посилання з назвою AUTO_MERGE, яке записується стратегією злиття ort після виникнення конфліктів злиття (див. git-merge[1]). Порівняння робочого дерева з AUTO_MERGE показує зміни, які ви внесли до цього часу для вирішення текстових конфліктів (див. приклади нижче).

Для отримання повнішого списку способів написання <commit> див. розділ "ВИЗНАЧЕННЯ РЕВІЗІЙ" у gitrevisions[7]. Однак, diff стосується порівняння двох кінцевих точок, а не діапазонів, а позначення діапазонів (<commit>..<commit> та <commit>...<commit>) не означають діапазон, як визначено в розділі "ВИЗНАЧЕННЯ ДІАПАЗОНІВ" у gitrevisions[7].

git diff [<options>] <blob> <blob>

Ця форма призначена для перегляду відмінностей між необробленим вмістом двох blob-об’єктів.

ОПЦІЇ