GIT-MERGE-INDEX(1) Git Manual GIT-MERGE-INDEX(1)

git-merge-index - اجرای ادغام برای فایل‌های نیازمند ادغام

git merge-index [-o] [-q] <merge-program> (-a | ( [--] <file>...) )

این دستور <file>(ها) را در نمایه (index) جستجو می‌کند و اگر مدخل‌های ادغام وجود داشته باشد، هش SHA-1 آن فایل‌ها را به عنوان آرگومان‌های ۱، ۲ و ۳ (اگر فایلی وجود نداشته باشد، آرگومان خالی) و <file> را به عنوان آرگومان ۴ ارسال می‌کند. حالت‌های فایل (file modes) برای این سه فایل به عنوان آرگومان‌های ۵، ۶ و ۷ ارسال می‌شوند.

--

هیچ آرگومان دیگری را به عنوان گزینه تفسیر نکن.

-a

اجرای ادغام روی تمامی فایل‌های موجود در نمایه که نیازمند ادغام هستند.

-o

به جای توقف در نخستین ادغام ناموفق، همه آن‌ها را یک‌باره انجام بده - به ادغام ادامه بده حتی اگر ادغام‌های قبلی با خطا مواجه شده باشند، و کد خطا را تنها پس از پایان تمام ادغام‌ها بازگردان.

-q

در صورت بروز خطا در برنامه ادغام، هشداری صادر نکن (شکست در برنامه ادغام معمولاً نشان‌دهنده تداخل در طول ادغام است). این گزینه برای دستورات سطح بالا (porcelains) کاربرد دارد که ممکن است بخواهند پیام‌های سفارشی صادر کنند.

اگر git merge-index با چند <file> (یا -a) فراخوانی شود، آن‌ها را به نوبت پردازش می‌کند و تنها در صورتی متوقف می‌شود که برنامه ادغام یک کد خروج غیر صفر بازگرداند.

معمولاً این دستور به همراه اسکریپتی اجرا می‌شود که تقلید گیت از دستور merge بسته RCS را فراخوانی می‌کند.

یک اسکریپت نمونه به نام git merge-one-file در توزیع گیت گنجانده شده است.

هشدار هشدار هشدار! ترتیب «شیء ادغام» در گیت با ترتیب شیء ادغام در برنامه merge متعلق به RCS متفاوت است. در ترتیب فوق، شیء اصلی (original) اول است. اما ترتیب آرگومان‌ها در برنامه ادغام ۳طرفه merge، شیء اصلی را در وسط قرار می‌دهد. دلیل آن را از من نپرسید.

مثال‌ها:

torvalds@ppc970:~/merge-test> git merge-index cat MM
This is MM from the original tree.              # original
This is modified MM in the branch A.            # merge1
This is modified MM in the branch B.            # merge2
This is modified MM in the branch B.            # current contents

یا

torvalds@ppc970:~/merge-test> git merge-index cat AA MM
cat: : No such file or directory
This is added AA in the branch A.
This is added AA in the branch B.
This is added AA in the branch B.
fatal: merge program failed

جایی که مثال دوم نشان می‌دهد چگونه git merge-index به محض اینکه چیزی با خطا بازگردد از تلاش برای ادغام بازمی‌ایستد (یعنی cat برای فایل AA خطا برگرداند، زیرا در فایل اصلی وجود نداشت، و در نتیجه git merge-index حتی تلاشی برای ادغام MM نکرد).

بخشی از مجموعه git(1)

2026-06-29 Git 2.55.0