آیا استفاده از کلاینت گرافیکی برای Git ضروری است؟
Git پیچیده است. زمانی که در یک تیم مشغول به کار هستید، مدیریت خطاهای غیر منتظره Git میتواند کاری دردسرساز باشد و قطعاً هیچ کس دوست ندارد زمانی را که باید به کدنویسی اختصاص دهد، صرف اصلاح مشکلات git بکند. استفاده از یک کلاینت گرافیکی برای Git میتواند بروز این مشکلات را کاهش دهد.
خط فرمان همیشه بهتر نیست
قبل از هر چیز باید اشاره کنیم که هدف از این مقاله آن نیست که اعلام کند یادگیری استفاده از git در خط فرمان امری غیرضروری است. این که شما بتوانید برخی وظایف ابتدایی مانند واکشی، کلون کردن، کامیت کردن و غیره را حتی بدون دسترسی به یک GUI اجرا کنید، حائز اهمیت بالایی است.
اما در مورد وظایف پیچیدهتر، مانند rebase کردن، مدیریت برنچها و merge کردن، git خط فرمان میتواند پیچیده باشد. این امر به طور خاص در مواردی که خطاهای غیرمنتظرهای ایجاد میشوند، مصداق بیشتری پیدا میکند. اگر تاکنون یک بار تغییرات خود را stash کرده و Head برنچتان را هارد ریست کردهاید تا مشکلاتی در زمان pushing یا pulling پیش آمده را حل کنید، قطعاً استفاده از یک GUI را مطلوب خواهید یافت.
در هر حال زمانی که محدود به ترمینال نباشید، به ترتیبی موفق به حل این مشکلات روی رایانه لوکال میشوید. به این ترتیب به جای این که مجبور به تایپ کردن دستورها برای اجرای کارهای مختلف داشته باشید، میتوانید کارهای اولیه را به صورت دکمههای مختلف در GUI اجرا کنید. البته GUI معجزه نمیکند و هم چنان باید با طرز کار git آشنا باشید. اصلاح مشکلات merge همچنان کاری دشوار است، هر چند GUI موجب میشود که درک علت بروز مشکل آسانتر شود.
در تصویر زیر مقایسهای بین کلاینت Git به نام Fork و git خط فرمان صورت گرفته است. به نظر شما کدام یک آسانتر است؟
پاسخ روشن است که GUI آسانتر است، گرچه طرفداران دوآتشه ترمینال ممکن است با این موضوع موافق نباشند، اما در این حالت ممکن است مجبور باشید زمان زیادی در استکاورفلو بگردید تا دستور کم کاربرد زیر را پیدا کرده و در ترمینال وارد کنید و خروجی نیز احتمالاً به زیبایی خروجی GUI نخواهد بود:
git log --graph --pretty=oneline --abbrev-commit
به علاوه اگر در یک تیم مشغول به کار هستید، ممکن است افرادی باشند که آشنایی چندانی با git نداشته باشند. آموزش مبانی و طرز کار داخلی git به یک فرد نوآموز از طریق GUI، بسیار آسانتر از زمانی است که بخواهید مفاهیم خط فرمان را نیز همراه با آن به وی آموزش دهید. در این مورد نیز گرچه همچنان ضرورت آموزش مفاهیم مقدماتی خط فرمان پابرجا است، اما اگر آنها قرار است از GUI به صورت روزمره استفاده کنند، با مشکلات و سردرگمی کمتری مواجه خواهید شد.
از کدام کلاینت Git استفاده کنیم؟
کلاینتهای گیت زیادی وجود دارند و این گستره چنان وسیع است که نمیتوان در این مقاله کوچک در مورد همه آنها صحبت کرد. بسیاری از این کلاینتها هم چندان ارزش توجه ندارند. به جای آن در ادامه تصاویری از چند مورد کلاینتهای مناسب را به شما نشان میدهیم تا بتوانید از میان آنها یکی را انتخاب کنید.
Fork (+) گزینهای است که بیش از سایر موارد پیشنهاد میشود. این کلاینت رایگان است و برای macOS و ویندوز انتشار یافته است، گرچه نسخهای برای لینوکس عرضه نشده است. پنجره اصلی آن تمیز و خلوت است و زبانههای مختلفی برای هر ریپازیتوری وجود دارند. همچنین یک گراف چندستونی وجود دارد که همه merge-ها و کامیتها را نمایش میدهد.
همچنین فورک مجهز به یک اینترفیس برای حل مشکلات تعارضهای merge است علاوه بر آن یک قابلیت تعاملی rebase وجود دارد که به شما امکان میدهد تا ترتیب کامیتها را در زمان rebase کردن برنچها تغییر دهید.
همچنین در فورک یک دکمه اختصاصی برای باز کردن ریپازیتوری جاری در ترمینال پیشفرض وجود دارد.
گزینه دیگر Sourcetree است که از سوی Atlassian ساخته شده است. این اپلیکیشن یک کلاینت git رایگان و با امکانات کامل است که دارای امکانات اضافی برای BitBucket است که رقیب گیتهاب Atlassian است. این اپلیکیشن همان اینترفیس گراف برای جستجوی تاریخچه کامیت و همچنین زبانهای برای جستجوی برنچهای مختلف است.
این اپلیکیشن دکمههایی برای ریپازیتوری در Finder/Explorer و همچنین ترمینال پیشفرض دارد. همچنین بیلدهایی برای سیستمهای مک و ویندوز ارائه شده است، گرچه از لینوکس پشتیبانی نمیکند.
گزینه بعدی که از میان کلاینتهای گیت معرفی میکنیم، Github Desktop (+) است. این اپلیکیشن به اندازه برخی دیگر از کلاینتها دارای امکانات کامل نیست، اما نظر میرسد که پیرامون یک کاربرد خاص یعنی کار روی ریپازیتوریهای اوپن سورس طراحی شده است. سوئیچ کردن ریپازیتوریها کار آسانی است و همچنین سوئیچ کردن بین برنچها درون ریپوها نیز به روش آسانی صورت میگیرد. تاریخچه کامیت به صورت یک لیست مرتب نمایش مییابد و پنجره اصلی یک نمای تفاوت از هر تغییر کامیت است.
شما در زمان کار روی پروژههای متن-باز، احتمالاً زمان زیادی را صرف ایجاد درخواستهای pull خواهید کرد. این اپلیکیشن موجب میشود که انجام این کار آسان باشد و صرفاً با زدن کلیدهای Ctrl+R یک درخواست pull جدید برای کامیت ایجاد میشود یا درخواست pull متناظر روی خود گیتهاب باز میشود.
Github desktop نسخههایی برای ویندوز و مک عرضه کرده است، اما نسخهای رسمی برای لینوکس وجود ندارد. با این حال از آنجا که این اپلیکیشن بر مبنای Electron طراحی شده است، یک پورت لینوکس (+) شخص ثالث برای آن وجود دارد.
در نهایت GitKraken (+) یک کلاینت git پولی است که پشتیبانی کاملی از مک، ویندوز و لینوکس دارد. قیمت این اپلیکیشن 49 دلار سالانه برای هر شخص در نسخه تیمی است، گرچه یک نسخه رایگان برای استفاده انفرادی با ریپازیتوریهای عمومی گیتهاب نیز وجود دارد.
با این حال این گزینه قطعاً ارزش پرداخت هزینه را دارد، رابط کاربری به صورت زیبایی طراحی شده است و حتی تصاویر پروفایل کوچکی در نمای گراف نمایش میدهد.
این اپلیکیشن با GitHub و Gitlab (همچنین گیتلب یا میزبانی شخصی) یکپارچه میشود و از سرویس issue tracking آنها بهره میگیرد که Glo Boards نام دارد. شاید در نگاه نخست همان Trello به نظر برسد، اما دارای لایسنس GitKraken است که در یک اینترفیس تجمیع شده است.
با وجود یکپارچهسازی با گیتهاب، این امکان وجود دارد که issue-ها و milestone-های گیتهاب را بهروزرسانی و همگامسازی کنید و همه این کارها از درون اپلیکیشن ممکن است. همچنین اکشنهای خودکار Glo Board در پاسخ به بهروز شدن وضعیت درخواستهای Pull قابل اجرا هستند.
به این ترتیب به پایان این مقاله با موضوع معرفی کلاینتهای گرافیکی Git میرسیم. امیدواریم این مطلب مورد توجه شما قرار گرفته باشد.