از جمله ویژگیهای فوقالعاده گیت، امکان مشاهده تغییرات است. ما این امکان را داریم تا بتونیم تغییرات یک branch را با branch دیگه و یا حتی یک commit را با commit دیگر مشاهده کنیم. به طور کلی همهی اینها با مجموعه دستور:
git diff
امکان پذیر است. اما چیزی که احتمالا مطلوب شما هم نباشد، دیدن این تغییرات در محیط ترمینال است. خوشبختانه برای این مشکل راه حل وجود دارد و با اتصال یک نرمافزار گرافیکی دیگر به git، میتوان در وضعیت خواناتری به بررسی این تغییرات پرداخت. در ادامه به بررسی نحوه راه اندازی یکی از این نرم افزارها به نام Beyond Compare در ویندوز خواهیم پرداخت. در صورتی که تمایل دارید از نرم افزار دیگری مثل Meld استفاده کنید، کافی است که به جای bc5 از meld در دستورات زیر استفاده کنید. قاعدتاً مسیر نصب هم متفاوت خواهد بود.
شناساندن Beyond Compare به Git از دو طریق امکان پذیر است:
راه اول
ابتدا باید Beyond Compare را به عنوان ابزار difftool به گیت بشناسانیم. برای اینکار دستور زیر را در محیط ترمینال گیت وارد میکنیم:
git config --global diff.tool bc5
حالا آدرس اجرایش را به آن میدهیم تا بتواند Beyond Compare را اجرا کند:
git config --global difftool.bc5.cmd '"C:/Users/AliRostami/AppData/Local/Programs/Beyond Compare 5/BCompare.exe" "$LOCAL" "$REMOTE"'
واضحه که اگر محل نصب Beyond Compare در سیستم عامل ویندوز شما آدرس دیگری دارد، باید آن آدرس را جایگزین آدرس دستور بالا کنید. همچنین اگر سیستم عامل شما ویندوز نیست برای ست کردن این تنظیم باید راه دیگری پیش گیرید.
تبریک میگم، تا اینجای کار درصد زیادی از مشکل شما حل شده است.
حالا بیایید آن را تست کنیم. ابتدا تغییراتی را در پروژه انجام دهید اما بعد از ذخیره آنها را کامیت نکنید. با اجرای دستور
git difftool
با تنظیماتی که تا الان انجام دادیم، git برای نشان دادن تغییرات تک تک فایلها، سوال میکند. چیزی که کمی آزاردهنده است. برای حل این مشکل میتوانیم از این دستور استفاده کنیم:
git config --global difftool.prompt false
اگرچه مشکل سوال پرسیدن حل شد، اما برای اینکه تغییرات کل پروژه را مشاهده کنید بهتر است از این دستور استفاده کنید:
git difftool --dir-diff
اگر میخواهید علاوه بر دیدن تغییرات در حل Merge conflict هم از Beyond Compare استفاده کنید، کافی است دستورات زیر را وارد کنید:
git config --global merge.tool bc5 git config --global mergetool.bc5.cmd '"C:/Users/AliRostami/AppData/Local/Programs/Beyond Compare 5/BCompare.exe" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"' git config --global mergetool.prompt false git config --global mergetool.bc5.trustExitCode true
و از این به بعد هرگاه به mergeconflict برخوردید با اجرای دستور زیر به راحتی آن را رفع کنید:
git mergetool
راه دوم
حاصل دستورات بالا تغییراتی به شکل زیر در فایل .gitconfig است:
[diff] tool = bc5 [difftool "bc5"] cmd = \"C:/Users/AliRostami/AppData/Local/Programs/Beyond Compare 5/BCompare.exe\" \"$LOCAL\" \"$REMOTE\" [difftool] prompt = false [merge] tool = bc5 [mergetool "bc5"] cmd = \"C:/Users/AliRostami/AppData/Local/Programs/Beyond Compare 5/BCompare.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\" trustExitCode = true [mergetool] prompt = false
ما میتوانیم خودمان مستقیم این خطوط را در این فایل بیاوریم. محل این فایل در سیستم عامل من در اینجاست:
C:\Users\AliRostami\.gitconfig
دیجیلاگیست محلی برای کسانی که به دنیای دیجیتال و آنالوگ علاقه دارند