| GIT-REPLACE(1) | Git Manual | GIT-REPLACE(1) |
نام (NAME)
git-replace - ایجاد، ویرایش یا حذف ارجاعات جایگزین اشیاء
خلاصه دستور (SYNOPSIS)
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>]]
توضیحات (DESCRIPTION)
یک ارجاع replace را در فضای نام refs/replace/ اضافه میکند.
نام ارجاع replace، مقدار SHA-1 شیئی است که جایگزین میشود. محتوای ارجاع replace، مقدار SHA-1 شیء جایگزین است.
شیء جایگزینشده و شیء جایگزین باید از یک نوع باشند. این محدودیت را میتوان با استفاده از -f دور زد.
مگر اینکه -f داده شده باشد، ارجاع replace نباید از قبل وجود داشته باشد.
هیچ محدودیت دیگری روی اشیاء جایگزینشده و جایگزین وجود ندارد. کامیتهای ادغام (merge) را میتوان با کامیتهای غیر ادغام جایگزین کرد و برعکس.
ارجاعات جایگزین به طور پیشفرض توسط تمام دستورات گیت استفاده خواهند شد، به جز دستوراتی که پیمایش دسترسیپذیری را انجام میدهند (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 تنظیم کرد.
گزینهها (OPTIONS)
-f, --force
-d, --delete
--edit <object>
--raw
--graft <commit> [<parent>...]
--convert-graft-file
-l <pattern>, --list <pattern>
--format=<format>
قالبها (FORMATS)
قالبهای زیر در دسترس هستند:
ایجاد اشیاء جایگزین (CREATING REPLACEMENT OBJECTS)
دستورات git-hash-object(1)، git-rebase(1) و git-filter-repo[1] در میان دیگر دستورات گیت، میتوانند برای ایجاد اشیاء جایگزین از روی اشیاء موجود استفاده شوند. گزینه --edit را میتوان همراه با git replace برای ایجاد یک شیء جایگزین با ویرایش یک شیء موجود به کار برد.
اگر میخواهید تعداد زیادی blob، درخت یا کامیت را که بخشی از یک رشته کامیت هستند جایگزین کنید، ممکن است فقط بخواهید یک رشته جایگزین از کامیتها ایجاد نمایید و سپس تنها کامیت موجود در نوک (tip) رشته کامیتهای هدف را با کامیت موجود در نوک رشته کامیتهای جایگزین، جایگزین کنید.
اشکالات (BUGS)
مقایسه حبابها (blobs) یا درختها (trees) که جایگزین شدهاند با مواردی که جایگزین آنها هستند، به درستی کار نخواهد کرد. همچنین استفاده از git reset --hard برای بازگشت به یک کامیت جایگزینشده، شاخه را به جای کامیت جایگزینشده به کامیت جایگزین منتقل میکند.
ممکن است هنگام استفاده از git rev-list مشکلات دیگری در رابطه با اشیاء در انتظار (pending objects) وجود داشته باشد.
هشدارها (CAVEATS)
وجود اشیاء جایگزین یا پیوندهای کامیت (commit grafts) خواندن یا نوشتن در commit-graph را غیرفعال میکند، که این امر میتواند باعث بروز مشکلات عملکردی و افت کارایی شود. git-commit-graph(1) را ببینید.
همچنین ببینید (SEE ALSO)
git-hash-object(1) git-rebase(1) git-tag(1) git-branch(1) git-commit(1) git-var(1) git(1) git-filter-repo[1]
گیت (GIT)
بخشی از مجموعه git(1)
نکات (NOTES)
- 1.
- git-filter-repo
| 2026-06-29 | Git 2.55.0 |