GIT-DIFFTOOL(1) راهنمای Git GIT-DIFFTOOL(1) نام (NAME) git-difftool - نمایش تغییرات با استفاده از ابزارهای متداول diff خلاصه دستور (SYNOPSIS) git difftool [] [ []] [--] [...] توضیحات (DESCRIPTION) دستور git difftool دستوری در گیت است که به شما امکان می‌دهد فایل‌ها را میان نسخه‌ها با استفاده از ابزارهای متداول diff مقایسه و ویرایش کنید. git difftool یک پیشانه (frontend) برای git diff است و همان گزینه‌ها و آرگومان‌ها را می‌پذیرد. به git-diff(1) مراجعه کنید. گزینه‌ها (OPTIONS) -d, --dir-diff فایل‌های تغییر‌یافته را در یک مکان موقت کپی کرده و یک diff دایرکتوری روی آن‌ها اجرا می‌کند. این حالت هرگز پیش از راه‌اندازی ابزار diff درخواستی برای تأیید نمایش نمی‌دهد. -y, --no-prompt پیش از راه‌اندازی ابزار diff درخواستی برای تأیید نمایش ندهد. --prompt پیش از هر بار فراخوانی ابزار diff درخواست تأیید نمایش دهد. این رفتار پیش‌فرض است؛ این گزینه برای نادیده گرفتن هرگونه تنظیمات پیکربندی ارائه شده است. --rotate-to= نمایش diff را از آغاز می‌کند، مسیرهای قبل از آن به انتهای خروجی منتقل شده و نمایش داده می‌شوند. --skip-to= نمایش diff را از آغاز می‌کند، و تمام مسیرهای قبل از آن نادیده گرفته می‌شوند. -t , --tool= از ابزار diff مشخص‌شده توسط استفاده می‌کند. مقادیر معتبر شامل emerge، kompare، meld و vimdiff هستند. دستور git difftool --tool-help را برای مشاهده فهرست تنظیمات معتبر اجرا کنید. اگر ابزار diff مشخص نشده باشد، git difftool از متغیر پیکربندی diff.tool استفاده خواهد کرد. اگر متغیر پیکربندی diff.tool تنظیم نشده باشد، git difftool یک مقدار پیش‌فرض مناسب را انتخاب خواهد کرد. می‌توانید با تنظیم متغیر پیکربندی difftool..path به‌طور صریح مسیر کامل ابزار را مشخص کنید. برای نمونه، می‌توانید مسیر مطلق kdiff3 را با تنظیم difftool.kdiff3.path پیکربندی کنید. در غیر این صورت، git difftool فرض می‌کند که ابزار در PATH در دسترس است. به جای اجرای یکی از ابزارهای شناخته‌شده diff، git difftool را می‌توان با مشخص کردن خط فرمانی که باید فراخوانی شود در متغیر پیکربندی difftool..cmd شخصی‌سازی کرد تا یک برنامه جایگزین را اجرا کند. هنگامی که git difftool با این ابزار فراخوانی می‌شود (چه از طریق گزینه -t یا --tool و چه از طریق متغیر پیکربندی diff.tool)، خط فرمان پیکربندی‌شده با متغیرهای زیر که در دسترس خواهند بود فراخوانی می‌شود: $LOCAL روی نام فایل موقت حاوی محتویات پیش‌تصویر diff تنظیم می‌شود و $REMOTE روی نام فایل موقت حاوی محتویات پس‌تصویر diff تنظیم می‌شود. $MERGED نام فایلی است که در حال مقایسه است. $BASE برای سازگاری با دستورات سفارشی ابزار ادغام (merge tool) ارائه شده است و همان مقدار $MERGED را دارد. --tool-help چاپ فهرستی از ابزارهای diff که می‌توان با --tool استفاده کرد. --symlinks, --no-symlinks رفتار پیش‌فرض git difftool این است که هنگام اجرا در حالت --dir-diff و زمانی که سمت راست مقایسه محتوایی مشابه با فایل موجود در درخت کاری داشته باشد، پیوندهای نمادین (symlinks) به درخت کاری ایجاد کند. مشخص کردن --no-symlinks به git difftool دستور می‌دهد که در عوض رونوشت‌ها (copies) را ایجاد کند. --no-symlinks در ویندوز پیش‌فرض است. -x , --extcmd= یک دستور سفارشی برای مشاهده diffها مشخص کنید. هنگامی که این گزینه مشخص شود، git-difftool پیش‌فرض‌های پیکربندی‌شده را نادیده گرفته و دستور $LOCAL $REMOTE را اجرا می‌کند. علاوه بر این، $BASE در محیط تنظیم می‌شود. -g, --gui, --no-gui هنگامی که git-difftool با گزینه -g یا --gui فراخوانی می‌شود، ابزار پیش‌فرض diff از متغیر پیکربندی‌شده diff.guitool به جای diff.tool خوانده خواهد شد. این مورد ممکن است به‌طور خودکار با استفاده از متغیر پیکربندی difftool.guiDefault انتخاب شود. گزینه --no-gui می‌تواند برای لغو این تنظیمات استفاده شود. اگر diff.guitool تنظیم نشده باشد، به‌ترتیب گزینه‌های جایگزین merge.guitool، diff.tool و merge.tool بررسی می‌شوند تا زمانی که یک ابزار پیدا شود. --trust-exit-code, --no-trust-exit-code خطاهای گزارش‌شده توسط ابزار diff به‌طور پیش‌فرض نادیده گرفته می‌شوند. از --trust-exit-code استفاده کنید تا git-difftool هنگامی که ابزار diff فراخوانی‌شده یک کد خروج غیرصفر برمی‌گرداند، خارج شود. هنگامی که --trust-exit-code به کار رود، git-difftool کد خروج ابزار فراخوانی‌شده را منتقل می‌کند. برای فهرست کامل گزینه‌های پشتیبانی‌شده به git-diff(1) مراجعه کنید. پیکربندی (CONFIGURATION) زمانی که معادل‌های difftool تعریف نشده باشند، git difftool به متغیرهای پیکربندی git mergetool رجوع می‌کند. همه موارد بالاتر از این خط در این بخش از مستندات git-config(1) گنجانده نشده است. محتوایی که در ادامه می‌آید همان چیزی است که در آنجا یافت می‌شود: diff.tool کنترل می‌کند که کدام ابزار diff توسط git-difftool(1) استفاده شود. این متغیر مقدار پیکربندی‌شده در merge.tool را بازنویسی می‌کند. فهرست زیر مقادیر معتبر توکار (built-in) را نشان می‌دهد. هر مقدار دیگری به عنوان یک ابزار diff سفارشی در نظر گرفته می‌شود و مستلزم آن است که متغیر متناظر difftool..cmd تعریف شده باشد. diff.guitool کنترل می‌کند که هنگام مشخص شدن فلگ -g/--gui، کدام ابزار diff توسط git-difftool(1) استفاده شود. این متغیر مقدار پیکربندی‌شده در merge.guitool را بازنویسی می‌کند. فهرست زیر مقادیر معتبر توکار را نشان می‌دهد. هر مقدار دیگری به عنوان یک ابزار diff سفارشی در نظر گرفته می‌شود و مستلزم آن است که متغیر متناظر difftool..cmd تعریف شده باشد. araxis استفاده از Araxis Merge (نیازمند نشست گرافیکی است) bc استفاده از Beyond Compare (نیازمند نشست گرافیکی است) bc3 استفاده از Beyond Compare (نیازمند نشست گرافیکی است) bc4 استفاده از Beyond Compare (نیازمند نشست گرافیکی است) codecompare استفاده از Code Compare (نیازمند نشست گرافیکی است) deltawalker استفاده از DeltaWalker (نیازمند نشست گرافیکی است) diffmerge استفاده از DiffMerge (نیازمند نشست گرافیکی است) diffuse استفاده از Diffuse (نیازمند نشست گرافیکی است) ecmerge استفاده از ECMerge (نیازمند نشست گرافیکی است) emerge استفاده از Emerge در Emacs examdiff استفاده از ExamDiff Pro (نیازمند نشست گرافیکی است) guiffy استفاده از ابزار Diff متعلق به Guiffy (نیازمند نشست گرافیکی است) gvimdiff استفاده از gVim (نیازمند نشست گرافیکی است) kdiff3 استفاده از KDiff3 (نیازمند نشست گرافیکی است) kompare استفاده از Kompare (نیازمند نشست گرافیکی است) meld استفاده از Meld (نیازمند نشست گرافیکی است) nvimdiff استفاده از Neovim opendiff استفاده از FileMerge (نیازمند نشست گرافیکی است) p4merge استفاده از HelixCore P4Merge (نیازمند نشست گرافیکی است) smerge استفاده از Sublime Merge (نیازمند نشست گرافیکی است) tkdiff استفاده از TkDiff (نیازمند نشست گرافیکی است) vimdiff استفاده از Vim vscode استفاده از Visual Studio Code (نیازمند نشست گرافیکی است) winmerge استفاده از WinMerge (نیازمند نشست گرافیکی است) xxdiff استفاده از xxdiff (نیازمند نشست گرافیکی است) difftool..cmd دستور لازم برای فراخوانی ابزار diff مشخص‌شده را تعیین کنید. دستور مشخص‌شده در پوسته با متغیرهای زیر که در دسترس خواهند بود ارزیابی می‌شود: LOCAL روی نام فایل موقت حاوی محتویات پیش‌تصویر diff تنظیم می‌شود و REMOTE روی نام فایل موقت حاوی محتویات پس‌تصویر diff تنظیم می‌شود. برای جزئیات بیشتر به گزینه --tool= در git-difftool(1) مراجعه کنید. difftool..path مسیر ابزار داده‌شده را بازنویسی کنید. این در صورتی که ابزار شما در PATH قرار ندارد مفید است. difftool.trustExitCode در صورتی که ابزار diff فراخوانی‌شده وضعیت خروج غیرصفر بازگرداند، از difftool خارج شود. برای جزئیات بیشتر به گزینه --trust-exit-code در git-difftool(1) مراجعه کنید. difftool.prompt پیش از هر بار فراخوانی ابزار diff درخواست تأیید نمایش دهد. difftool.guiDefault مقدار true را تنظیم کنید تا به‌طور پیش‌فرض از diff.guitool استفاده شود (معادل مشخص کردن آرگومان --gui)، یا auto را برای انتخاب diff.guitool یا diff.tool بسته به وجود مقدار در متغیر محیطی DISPLAY تنظیم کنید. مقدار پیش‌فرض false است، که در آن آرگومان --gui باید به‌طور صریح ارائه شود تا diff.guitool مورد استفاده قرار گیرد. همچنین ببینید (SEE ALSO) git-diff(1) نمایش تغییرات میان کامیت‌ها، کامیت و درخت کاری، و غیره git-mergetool(1) اجرای ابزارهای حل تعارض ادغام برای حل تعارضات ادغام git-config(1) دریافت و تنظیم گزینه‌های مخزن یا سراسری گیت (GIT) بخشی از مجموعه git(1) Git 2.55.0 2026-06-29 GIT-DIFFTOOL(1)