Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
-
2.52.0
2025-11-17
- 2.51.2 no changes
-
2.51.1
2025-10-15
- 2.39.1 → 2.51.0 no changes
-
2.39.0
2022-12-12
- 2.15.4 → 2.38.5 no changes
- 2.14.6 no changes
- 2.7.6 → 2.13.7 no changes
-
2.6.7
2017-05-05
- 2.2.3 → 2.5.6 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
ОПИС
Зчитати патч зі стандартного вводу та обчислити його ідентифікатор.
«Ідентифікатор патча» — це не що інше, як сума SHA-1 відмінностей файлів, пов’язаних із патчем, при цьому номери рядків ігноруються. Таким чином, він є «достатньо стабільним», але водночас і досить унікальним, тобто два патчі з однаковим «ідентифікатором патча» майже гарантовано є одним і тим самим.
Основне використання цієї команди — пошук ймовірних дублікатів комітів.
Під час роботи з виводом git diff-tree використовується той факт, що перед патчем починається назва об’єкта коміту, і виводиться два 40-байтові шістнадцяткові рядки. Перший рядок – це ідентифікатор патча, а другий рядок – ідентифікатор коміту. Це можна використовувати для зіставлення ідентифікатора патча з ідентифікатором коміту.
ОПЦІЇ
-
--verbatim -
Обчислюйте patch-id вхідних даних так, як вони задані, не видаляючи пробіли.
Це значення за замовчуванням, якщо
patchid.verbatimмає значенняtrue. -
--stable -
Використовуйте «стабільну» суму хешів як ідентифікатор патча. З цією опцією:
-
Зміна порядку різниці файлів, що складають патч, не впливає на ідентифікатор. Зокрема, два патчі, створені шляхом порівняння тих самих двох дерев з двома різними налаштуваннями для
-O<файл_порядку>, призводять до однакового підпису ідентифікатора патча, що дозволяє використовувати обчислений результат як ключ для індексації деякої метаінформації про зміну між двома деревами; -
Результат відрізняється від значення, отриманого git 1.9 та старішими версіями, або отриманого при налаштуванні "нестабільного" хешу (див.
--unstableнижче) - навіть при використанні на виході diff, отриманому без використання-O<orderfile>, що робить існуючі бази даних, що зберігають такі "нестабільні" або історичні ідентифікатори патчів, непридатними для використання. -
Усі пробіли всередині патча ігноруються та не впливають на ідентифікатор.
Це значення за замовчуванням, якщо для
patchid.stableвстановлено значенняtrue. -
-
--unstable -
Використовуйте "нестабільний" хеш як ідентифікатор патча. З цією опцією отриманий результат сумісний зі значенням patch-id, створеним git 1.9 та старішими версіями, а пробіли ігноруються. Користувачі з попередніми базами даних, що зберігають patch-idents, створені git 1.9 та старішими версіями (які не мають справу з перевпорядкованими патчами), можуть захотіти скористатися цією опцією.
Це значення за замовчуванням.
GIT
Частина набору git[1]