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.51.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/
.
Ім’я посилання «заміна» – це SHA-1 об’єкта, який замінюється. Вміст посилання «заміна» – це 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
показує інформацію про панель комітів.
Змінну середовища 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: <замінено-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]