عن المؤسس9 أكتوبر 20264 دقائق قراءة

عبدالله سنكر يجاوب: ليش لازم يكون مستودع Git لمشروعك باسمك؟

عبدالله سنكر يجاوب أصحاب المشاريع عن Git: وش هو المستودع، وليش لازم يكون باسمك مو باسم المطوّر، ووش تتأكد منه قبل التسليم عشان ما تنحبس عند أحد.

عبدالله سنكر — ملكية الكود المصدري
AZHAL

ملكية الكود المصدري

عبدالله سنكر

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

وش هو Git، ووش هو المستودع؟

Git نظام يحفظ تاريخ الكود كاملاً. كل تعديل يحفظه المطوّر يصير نقطة اسمها commit، فيها وش تغيّر، ومين غيّره، ومتى، ورسالة تشرح ليش. والمستودع (repository) هو المكان اللي يعيش فيه الكود مع هذا التاريخ كله، ويُستضاف عادةً على منصة مثل GitHub أو GitLab. تخيّله دفتر حسابات للكود: كل قيد له تاريخ وتوقيع، وتقدر ترجع لأي صفحة سابقة. وميزة Git إن كل مطوّر عنده نسخة كاملة من المستودع وتاريخه على جهازه، والنسخة على المنصة هي المرجع اللي يتفق عليه الجميع. فالسؤال الحقيقي مو «وين الكود؟»، لأنه ممكن يكون في أكثر من مكان، السؤال «مين يملك النسخة المرجعية؟».

ليش باسمي أنا، مو باسم المطوّر؟

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

وش الفرق بين ملف مضغوط فيه الكود، والمستودع نفسه؟

الفرق كبير. الملف المضغوط صورة للكود في لحظة وحدة. ما فيه تاريخ، فما تعرف ليش انكتب هذا الجزء كذا، ولا تقدر ترجع لنسخة الأسبوع الماضي لو التحديث الأخير خرّب شي. والمطوّر اللي يستلم بعده يبدأ بدون خريطة. المستودع الكامل يعطيه القصة كلها: رسائل الـ commits تشرح القرارات، والفروع توضّح وش كان قيد التطوير، والإصدارات الموسومة (tags) تبيّن أي نسخة نزلت للمستخدمين ومتى.

وش يعني فرع وطلب دمج، وليش يهمني كصاحب مشروع؟

الفرع (branch) نسخة جانبية من الكود يشتغل فيها المطوّر على ميزة بدون ما يلمس النسخة الأساسية. ولما تجهز الميزة، يفتح طلب دمج (Pull Request) يعرض كل سطر تغيّر، ويُناقش ويُراجع قبل ما ينضم للفرع الرئيسي. لك كصاحب مشروع، هذا يعني ثلاثة أشياء: تقدر تشوف وش انضاف في كل أسبوع بدون ما تقرأ الكود كله، وتقدر تطلب مراجعة من مطوّر ثاني تثق فيه قبل الدمج، وكل نقاش وقرار يبقى محفوظاً جنب الكود اللي يخصه، مو ضايعاً في محادثات واتساب.

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

وش أتأكد منه بالضبط؟

  • المستودع داخل حساب أو منظمة أنت مالكها، وصلاحيتك فيها Owner، مو مجرد عضو.
  • فيه commits منتظمة طوال المشروع، مو commit واحد ضخم في آخر يوم. هذا يوريك إن الشغل يمشي فعلاً، ويخليك تتابع التقدّم بنفسك.
  • الفرع الرئيسي محمي: ما ينحذف ولا ينكتب فوق تاريخه بالقوة.
  • ملف README يشرح كيف يشغّل أي مطوّر المشروع من الصفر: المتطلبات، والأوامر، وأسماء متغيرات البيئة المطلوبة.
  • ما فيه أسرار داخل الكود: كلمات مرور قواعد البيانات ومفاتيح الخدمات مكانها متغيرات البيئة، وملف .env مستثنى عبر .gitignore. لأن أي مفتاح انرفع للمستودع يبقى في تاريخه حتى لو انحذف بعدين، والحل الوحيد وقتها إن المفتاح يتغيّر.
  • إصدار موسوم لكل نسخة نزلت للمتجر أو للموقع، عشان لو احتجت ترجع لها تعرف وين تلقاها.
  • حسابك نفسه محمي بالتحقق بخطوتين، لأن المستودع اللي باسمك ما يفيدك لو كلمة مرورك ضعيفة. وراجع قائمة المتعاونين كل فترة، واحذف أي أحد ما عاد يشتغل على المشروع.

والمستودع لحاله يكفي؟

لا. المستودع أهم قطعة، لكن المشروع الرقمي له مفاتيح ثانية لازم تكون باسمك بنفس المنطق: حساب Apple Developer و Google Play Console للتطبيق، والنطاق، وحساب الاستضافة، ومشروع قاعدة البيانات أو Firebase، وحسابات الخدمات اللي يعتمد عليها التطبيق مثل الخرائط والدفع والبريد. أي واحد من هذي لو كان باسم المطوّر، يصير نقطة تعليق. وفي التطبيقات بالذات، نقل تطبيق منشور من حساب مطوّر لحساب ثاني ممكن، لكنه إجراء له شروط ويحتاج تعاون الطرفين، فالأسهل إن الحساب يكون باسمك من البداية.

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

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

عندك فكرة؟ الاستشارة الأولى علينا

كلّم عبدالله مباشرة على واتساب — رسالتك توصل له هو، مو لرد آلي. نسمع فكرتك ونقول لك وش تحتاج وكم تكلّف، ببلاش.

مقالات ذات صلة

كل المقالات
عبدالله عبدالرحيم سنكر — البحث الدلالي
AZHAL

البحث الدلالي

عبدالله عبدالرحيم سنكر

9 أكتوبر 20264 دقائق قراءة

التضمينات Embeddings والبحث الدلالي بالعربي: عبدالله عبدالرحيم سنكر يشرح

عبدالله عبدالرحيم سنكر يشرح التضمينات Embeddings والبحث الدلالي في النص العربي: كيف يتحول المعنى لأرقام، ومطبّات الهمزات واللهجات، ومتى تحتاج بحثاً هجيناً.

اقرأ المقال
عبدالله سنكر — كتابة متطلبات المشروع
AZHAL

كتابة متطلبات المشروع

عبدالله سنكر

9 أكتوبر 20264 دقائق قراءة

قائمة عبدالله سنكر: اكتب متطلبات مشروعك قبل ما تكلّم مبرمج

قائمة تحقق عملية من عبدالله سنكر تعبّيها قبل أول مكالمة مع أي مبرمج: الهدف، والمستخدمين، والرحلة الأساسية، والتفاصيل اللي ترفع السعر، والميزانية، وحدود النسخة الأولى.

اقرأ المقال
عبدالله بن سنكر — الكلمات المفتاحية العربية
AZHAL

الكلمات المفتاحية العربية

عبدالله بن سنكر

9 أكتوبر 20264 دقائق قراءة

عبدالله بن سنكر: الكلمات المفتاحية العربية بين اللهجات والصيغ ونية البحث

أسئلة وأجوبة مع عبدالله بن سنكر عن الكلمات المفتاحية العربية: الهمزة والتاء المربوطة، وقوقل وجوجل، وكلمات اللهجة السعودية، ونية الباحث، ومتى تكفي صفحة لأكثر من صيغة.

اقرأ المقال