جيت

جيت هو النظام الذي يسجّل كل تغيير يجري على البرنامج، ومن أجراه ولماذا، بحيث يمكن التراجع عن أي تغيير في أي وقت.

يُعرف أيضًا بـ إدارة الإصدارات التحكم في النسخ سجل التغييرات

التعريف

يحفظ جيت (Git) سجلًا لكل تغيير جرى على البرنامج، ومن غيّره ومتى ولماذا. وكل تغيير محفوظ يسمى «كوميت»، ولأن شيئًا لا يُحذف، يمكن التراجع عن أي كوميت منها. هذه هي الفكرة كلها، وهي أيضًا سبب قدرة عدة أشخاص على العمل على المنتج نفسه في وقت واحد دون أن يمحو أحدهم عمل الآخر.

ولأن هذا السجل موجود، يتوقف الإصدار السيئ عن كونه كارثة. فبدل استعادة نسخة الأمس وخسارة طلبات اليوم، يعيد الفريق الكود إلى آخر نقطة سليمة، في أقل من دقيقة غالبًا. وموقعا جيت هَب وجيت لاب مبنيان فوق جيت، فهما يحفظان النسخة المشتركة ويضيفان النقاش حولها. فيقترح شخص تغييرًا، ويقرأه آخر ويعلّق عليه قبل أن يصل إلى أي عميل. ولهذا حين يسأل عميل لينكي سوفت لنظم المعلومات من غيّر قاعدة تسعير ومتى، تأتي الإجابة من هذا السجل لا من ذاكرة أحد.

وأكثر ما يفاجئ الناس أن جيت لا ينسى فعلًا. فإذا حُفظت كلمة مرور أو مفتاح دفع في السجل مرة واحدة، لن يزيله حذف السطر بعد يوم. إذ تبقى النسخة القديمة في السجل، ويقرؤها كل من يملك نسخة من المشروع. ولذلك فالحل الأمين الوحيد هو تغيير كلمة المرور نفسها ثم تنظيف السجل. وهذا من أول ما نبحث عنه في مراجعة الأمان، ونجده أكثر مما يتمنى أحد.

وهناك أمران آخران يستحقان المعرفة، أولهما أن جيت ليس نسخة احتياطية. فهو يحفظ تاريخ الكود لا طلبات عملائك ولا ملفاتهم، وهذه تحتاج نسخة خاصة بها في مكان آخر. وثانيهما أن قيمة السجل الحقيقية تكمن في الملاحظات التي يكتبها الناس بجانب كل تغيير. فبعد ستة أشهر لا تقول عبارة «تم الإصلاح» شيئًا لأحد، بينما تختصر عبارة مثل «إيقاف تقريب إجمالي الفاتورة للأسفل في الطلبات بعملتين» بعد ظهر يوم كامل.

ثم يأتي السؤال الذي يستحق أن يُطرح مبكرًا، والعلاقة ما زالت جيدة: باسم من الحساب الذي يحفظ الكود؟ فالشركات تكتشف الإجابة في أسوأ لحظة، حين يرحل المبرمج ويخرج السجل معه. ولذلك يعيش كل مشروع تديره لينكي سوفت في جيت من اليوم الأول، في حساب يملكه العميل، بما في ذلك الأعمال التي نستلمها ناقصة. وبهذه الطريقة يغطي سجل واحد تطبيق الويب وتطبيق الجوال المبني داخل النظام نفسه. فيصل تغيير واحد في قاعدة التسعير إلى الاثنين معًا، ونستطيع أن نبيّن اليوم الذي حدث فيه.

أسئلة حول جيت

هل جيت هو نفسه جيت هَب؟
لا. جيت هو نظام حفظ السجل الذي يعمل على الأجهزة التي يجري عليها العمل. أما جيت هَب فموقع يحفظ نسخة مشتركة من هذا السجل ويضيف المراجعة والنقاش. وجيت لاب وبِت بَكِت يؤديان الدور نفسه.
هل يستطيع جيت استعادة ملف حذفناه؟
نعم، ما دام الملف قد حُفظ في السجل مرة واحدة على الأقل. تستطيع استعادة أي نسخة منه، ومعرفة من حذفه، وقراءة الملاحظة التي كتبها حينها.
هل جيت نسخة احتياطية لنظامي؟
لا. هو يحفظ تاريخ الكود لا بياناتك. أما الطلبات والملفات المرفوعة وقاعدة البيانات فتحتاج نسخة احتياطية خاصة بها، بجدول منتظم، ومخزّنة في مكان منفصل. وهذا ترتيب مختلف يجب التحقق منه.
ماذا يحدث للكود إذا رحل المبرمج؟
هذا يعتمد كليًا على اسم صاحب الحساب الذي يحفظه. اسأل الآن والعلاقة جيدة. يجب أن يكون الحساب باسم الشركة، وأن يملك شخص واحد على الأقل داخلها صلاحية كاملة عليه.
حفظ أحدهم كلمة مرور داخل الكود. هل يكفي حذفها؟
لا. النسخة القديمة تبقى في السجل، ويستطيع كل من يملك نسخة من المشروع قراءتها. غيّر كلمة المرور نفسها أولًا ثم نظّف السجل. أما العكس فيترك الباب مفتوحًا.

ما زلت غير متأكد كيف ينطبق هذا على مشروعك؟

أخبرنا بما تبنيه وسنجيبك بلغة واضحة.