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.44.1 → 2.54.0 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.24.1 → 2.42.4 no changes
-
2.24.0
2019-11-04
- 2.18.1 → 2.23.4 no changes
-
2.18.0
2018-06-21
- 2.10.5 → 2.17.6 no changes
-
2.9.5
2017-07-30
- 2.2.3 → 2.8.6 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
СИНОПСИС
git replace [-f] <object> <replacement> git replace [-f] --edit <object> git replace [-f] --graft <commit> [<parent>…] git replace [-f] --convert-graft-file git replace -d <object>… git replace [--format=<format>] [-l [<pattern>]]
ОПИС
Додає посилання replace у простір імен refs/replace/.
Імʼя посилання replace — це SHA-1 обʼєкта, який замінюється. Вміст посилання replace — це SHA-1 обʼєкта, що замінює.
Замінений обʼєкт та обʼєкт заміни повинні бути одного типу. Це обмеження можна обійти за допомогою параметра -f.
Якщо не вказано параметр -f, посилання для заміни ще не повинно існувати.
Немає жодних інших обмежень щодо замінених та замінюваних обʼєктів. Коміти злиття можна замінити на незлиті коміти і навпаки.
Посилання на заміну будуть використовуватися зазвичай усіма командами Git, окрім тих, що виконують обхід досяжності (prune, pack transfer та fsck).
Можна вимкнути використання посилань на заміну для будь-якої команди, використовуючи опцію --no-replace-objects одразу після git.
Наприклад, якщо коміт foo було замінено на коміт bar:
$ git --no-replace-objects cat-file commit foo
показує інформацію про коміт foo, тоді як:
$ git cat-file commit foo
показує інформацію про коміт bar.
Змінну середовища GIT_NO_REPLACE_OBJECTS можна встановити для досягнення того ж ефекту, що й опція --no-replace-objects.
ОПЦІЇ
- -f
- --force
-
Якщо для того самого обʼєкта існує посилання на заміну, воно буде перезаписано (замість того, щоб завершитися невдачею).
- -d
- --delete
-
Видалити наявні посилання на заміну для вказаних обʼєктів.
- --edit <object>
-
Інтерактивне редагування вмісту обʼєкта. Наявний вміст для <object> виводиться у тимчасовий файл, для файлу запускається редактор, а результат аналізується для створення нового обʼєкта того ж типу, що й <object>. Потім створюється посилання на заміну <object> новоствореним обʼєктом. Див. git-var[1] для отримання детальної інформації про те, як буде вибрано редактор.
- --raw
-
Під час редагування надає необроблений вміст обʼєкта, а не той, що виводиться у форматі для друку. Наразі це впливає лише на дерева, які показуються у двійковому вигляді. З цим складніше працювати, але це може допомогти під час відновлення дерева, яке настільки пошкоджене, що його неможливо вивести у форматі для друку. Зверніть увагу, що вам може знадобитися налаштувати редактор для чистого читання та запису двійкових даних.
- --graft <commit> [<parent>…]
-
Створює коміт graft. Новий коміт створюється з тим самим вмістом, що й <commit>, за винятком того, що його батьками будуть [<parent>…] замість батьків <commit>. Потім створюється посилання на заміну, щоб замінити <commit> щойно створеним комітом. Використовуйте
--convert-graft-fileдля конвертації файлу$GIT_DIR/info/graftsта замість нього використовуйте посилання replace refs. - --convert-graft-file
-
Створює коміти graft для всіх записів у
$GIT_DIR/info/graftsта видаляє цей файл у разі успіху. Мета полягає в тому, щоб допомогти користувачам перейти з файлу graft, який зараз застарів. - -l <pattern>
- --list <pattern>
-
Вивести список посилань на заміну для обʼєктів, які відповідають заданому шаблону (або всі, якщо шаблон не вказано). Введення "git replace" без аргументів також виведе список усіх посилань для заміни.
- --format=<format>
-
Під час перерахування використовуйте вказаний <format>, який може бути одним із варіантів: short, medium або long. Якщо його пропустити, стандартний формат — short.
ФОРМАТИ
Доступні такі формати:
-
short: <replaced-sha1>
-
medium: <replaced-sha1> → <replacement-sha1>
-
long: <replaced-sha1> (<replaced-type>) → <replacement-sha1> (<replacement-type>)
СТВОРЕННЯ ОБʼЄКТІВ ЗАМІНИ
Команди git-hash-object[1], git-rebase[1] та git-filter-repo, серед інших git, можна використовувати для створення обʼєктів-замінників з наявних обʼєктів. Опцію --edit також можна використовувати з git replace для створення обʼєкта-замінника шляхом редагування наявного обʼєкта.
Якщо ви хочете замінити багато блобів, дерев або комітів, що є частиною рядка комітів, ви можете просто створити рядок заміни комітів, а потім замінити коміт на кінці цільового рядка комітів на коміт на кінці рядка заміни комітів.
ПОМИЛКИ
Порівняння замінених блобів або дерев з тими, що їх замінюють, не працюватиме належним чином. А використання git reset --hard для повернення до заміненого коміту перемістить гілку до заміненого коміту замість заміненого.
Під час використання git rev-list можуть виникнути інші проблеми, повʼязані з обʼєктами, що очікують розгляду.
GIT
Частина набору git[1]