۲۰ سال پیش در چنین روزی، لینوس توروالدز «گیت» (git) را منتشر کرد. از آن زمان تا امروز، این ابزار به بخشی جداییناپذیر از توسعه نرمافزار تبدیل شده است.
توروالدز درباره خودش میگوید: «من یک آدم خودخواه لعنتیام و همه پروژهها را به اسم خودم نامگذاری میکنم. اول ‘لینوکس’، حالا هم ‘گیت’.» واژه “git” در زبان عامیانه بریتانیایی به معنی «کلهشقهایی است که فکر میکنند همیشه حق با آنهاست و بحث میکنند». توروالدز هم نوعی لجبازی را نشان داد وقتی که بیست سال پیش، از سیستمهای کنترل نسخه موجود ناراضی بود و تصمیم گرفت گیت را خودش خلق کند. در ۷ آوریل ۲۰۰۵، یعنی دقیقاً ۲۰ سال پیش، نخستین نسخه آن را منتشر کرد.
داستان شکلگیری گیت
ماجرا ساده است: جامعهی توسعهدهندگان لینوکس برای مدیریت نسخههای کد (بهویژه کرنل لینوکس) از «بیتکیپر» (Bitkeeper) استفاده میکرد، اما این شرکت در آوریل ۲۰۰۵ نسخه رایگان خود را کنار گذاشت. از آنجا که بیتکیپر هیچگاه متنباز نبود، پیشتر هم در میان بسیاری از برنامهنویسان محبوبیت نداشت. سایر سیستمهای موجود هم توقعات توروالدز را برآورده نمیکردند. او به دنبال سیستمی توزیعشده بود (یعنی نیازی به سرور مرکزی نداشته باشد) تا از گلوگاههای ترافیکی و خطرهای تکنقطهای جلوگیری شود. در عین حال باید امن، سریع، قابل نسخهبندی و البته متنباز میبود.
تولد گیت تنها در چهار روز
توروالدز خودش دستبهکار شد و چنین سیستمی را در عرض تنها چهار روز، بین ۳ تا ۷ آوریل ۲۰۰۵ ایجاد کرد. تنها چند هفته بعد، در ۲۹ آوریل، سرعت پردازش پچها در پروژه کرنل لینوکس به ۶.۷ پچ در ثانیه رسید – کارایی سیستم اثبات شد. موفقیت گیت با همین سرعت ادامه یافت: در یک نظرسنجی در سال ۲۰۲۲، ۹۴٪ از شرکتکنندگان اعلام کردند که از گیت برای کنترل نسخه استفاده میکنند. سایر سیستمها کاملاً از میدان به در شدهاند؛ بیتکیپر دیگر وجود ندارد و رقبایی مثل Google Code نیز تسلیم شدهاند.
چرا گیت موفق شد؟
بسیاری دلیل موفقیت گیت را در ساختار درختی سبک و منعطف آن میدانند. توسعهدهندگان بهراحتی میتوانند یک شاخه (branch) بسازند، آن را با شاخه اصلی (main) ادغام (merge) کنند یا کلاً کنار بگذارند. هر کلون توزیعشده دارای مخزن (repository) مستقل با شاخهها و نسخههای مخصوص به خودش است که امکان بازگشت به حالتهای قبلی را هم دارد.
گیت نیازی به مخزن مرکزی (مثل origin/main) ندارد، ولی در بیشتر پروژهها، چنین مخزنی در فضای ابری (مثل GitHub، GitLab یا Bitbucket) وجود دارد. این پلتفرمها بر پایه گیت ساخته شدهاند و امکاناتی مثل خط لوله CI/CD، تست خودکار و جامعهی توسعهدهندگان را اضافه کردهاند. امروزه محیطهای توسعه مثل VS Code یا JetBrains نیز کاملاً با گیت یکپارچه شدهاند، و دیگر نیازی به استفاده مستقیم از خط فرمان نیست. حتی در بسیاری از موارد، دستیارهای هوش مصنوعی، متن توضیح commitها را بهطور خودکار مینویسند!
توروالدز خودش دیگر گیت را توسعه نمیدهد. از اواخر ژوئن ۲۰۰۵، او پروژه را به «جونیو هامانو» سپرد که همچنان توسعهی آن را رهبری میکند. آخرین نسخه منتشرشده توسط او، نسخه ۲.۴۹ است.

