شاهد مع تشغيل الصوت
12 أغسطس 2026 · دبي، الإمارات
25.2048° شمالاً · 55.2708° شرقاً · المنطقة الزمنية UTC+4
الـ15 208 يوم من الحياة · الـ1 474 يوم في دبي
منذ زمن بعيد، في حياة أخرى، حاول مطور خلفيات في مكتب Yandex أن يشرح لي أن علينا أحياناً أن نعمل cherry-pick لشيء من فرع إلى آخر.
استمعت إليه بانتباه. كنت أحاول دائماً الإنصات للمبرمجين، لأن وجوههم تقول إن الحديث عن أمر بالغ الأهمية. في مكان ما شجرة لها فروع، وعلى الفروع تحدث commits، وأحياناً يجب دمج الفروع وأحياناً يمنع الدمج، وعندها يلزم cherry-pick لشيء ما. وفي الحالات الشديدة ينشأ تعارض.
بدا لي، أنا مصمم المنتجات، الأمر كقبّالة قديمة. كنت أفهم الواجهات والسيناريوهات ومعمارية المعلومات، وأجادل ساعات لماذا سيضغط المستخدم هنا لا هناك، ولماذا ينبغي أن يكون زر يسار الآخر بثمانية بكسلات، ولماذا يصمم فريق المنتج للشهر الثالث شيئاً لا يحتاجه الناس إطلاقاً. أستطيع رسم نظام معقد إلى حد بعيد وشرح سلوكه في مئة حالة. لكن بعدها يأتي الحد. وخلفه يعيش المبرمجون.
أسلمهم Figma فيدخلون إلى طرفياتهم، وتبدأ فيزياء أخرى للعالم. هناك مستودعات وحاويات وبيئات ونقاط نهاية وترحيلات ومفاتيح وGit الغامض. وأبقى أنا على ضفة النهر هذه. ظننت أن الكون هكذا: المصمم يصمم والمبرمج يبني. المعماري يرسم الخريطة، ثم يمشي شخص آخر فعلاً عبر الغابة.
مرت سنوات كثيرة. انتقلت إلى دبي وبدلت حيوات ومهناً وشققاً وفرقاً وواجهات وتصورات عن نفسي. وذات يوم وجدتني جالساً بالحاسوب بين عرض فيلا في Tilal Al Ghaf واتصال عقاري وتعديلات موقعي والأطفال والكلب والانتقال إلى Palm Jumeirah ومحاولة جديدة لبناء CRM لعملي في الوساطة — وأقول للوكيل بهدوء تام: اعمل commit للتغييرات وpush.
نظرت إلى العبارة وفهمت فجأة أن أمراً أهم بكثير من تعلم أداة أخرى قد حدث.
عبرت النهر.

في البدء كان الملف
للملفات خاصية مزعجة: لا توجد إلا الآن. يعرف المصممون القدامى هذه الآثار جيداً —final.fig,final-final.fig,final-v2.fig,final-v2-new.fig,final-v2-new-real.fig. كان على كل ملف جديد أن يحفظ بطريقة ما ذاكرة السابق. أحياناً في الاسم وأحياناً في مجلد Archive وأحياناً في رأس المصمم وأحياناً تختفي تماماً. حاولنا لسنوات إدارة الزمن يدوياً.
اقترح Git طريقة مختلفة تماماً للتفكير في الماضي. لا حاجة إلى نسخة كاملة أخرى من العالم كلما تغير. يمكن حفظ التغيير نفسه: هنا كان شيء ثم فعلت آخر، وهذا السبب، وهذه اللحظة التي صار فيها النظام مختلفاً. وتسمى تلك اللحظة commit.
احتجت سنوات كثيرة لأحس جمال الكلمة — لا تقنياً، بل جمالاً يكاد يكون ميتافيزيقياً. Commit وعد للواقع. تقول: هذه حالة العالم التي أتحمل مسؤوليتها الآن. قبل ذلك قد تتناثر التعديلات حولك كركام بناء: ملفات عُدلت وواحد حُذف وآخر ظهر، وتغير منطق هنا، وهناك أعاد الوكيل كتابة نصف المشروع لسبب ما دون أن يطلب أحد ذلك. كل شيء ما زال مائعاً، ويمكن التراجع عن كله.
ثم تعمل commit، فتحصل الفوضى على اسم.
إصلاح تخطيط بطاقة العقار, إضافة مطابقة الملاك, استعادة مسار المصادقة, تحديث تعليمات الوكلاء, التوقف عن تعطيل الإنتاج.
الأخير مهم خصوصاً.
عندها يحدث أمر مذهل: الماضي لا يعود يختفي. يصبح طريقاً.
ظننت طويلاً أن الذاكرة في الرأس
لعل لهذا تشغلني ذاكرة الشبكات العصبية الآن. اعتدنا اعتبار الذاكرة صفة للإنسان. أتذكر المكتب الأول وموسكو والغرف التي تجادلنا فيها حول المنتجات، والمطور نفسه الذي شرح cherry-pick، مع أنني شبه متأكد من أنني لم أفهم كلمة آنذاك. أتذكر 30 يوليو 2022، اليوم الذي بدأ فيه عدّ دبي الخاص بي.
اليوم هو اليوم 1 474. يمكن كتابته بصورة أخرى: دبي / commit 1474.
خلال ذلك تغير كل شيء تقريباً: العناوين والعمل وفهمي للعمل ومن حولي وأحجام الأطفال وعدد الأشياء في البيت والشبكات العصبية في الحاسوب وحتى تعريف من أكون. لكن الذاكرة البشرية غير موثوقة. تعيد كتابة التاريخ باستمرار، وكلما تذكرنا الماضي عدلناه قليلاً ليلائم ذواتنا اليوم.
Git مختلف. إنه محايد إلى حد بعيد. يقول: هذا ما كان، وهذا ما تغير، وهذا من غيّر، وهذا متى، وهذا لماذا — إن لم تتكاسل عن كتابة رسالة سليمة. بمعنى ما، git log واحد من أصدق السير الذاتية التي رأيتها. بلا معالجة أدبية لاحقة ولا رغبة في الظهور أذكى بأثر رجعي.
الثلاثاء، 02:14 — عطّلت المصادقة
الثلاثاء، 02:47 — أصلحت المصادقة
الثلاثاء، 03:06 — أصلحت ما عطلته أثناء إصلاح المصادقة
هكذا تبدو الحياة الحقيقية تقريباً.
ثم ظهر الوكلاء
وهنا تغير كل شيء نهائياً. كان الحاسوب أداة: تضغط الأزرار وتحرك الفأرة وتفتح البرنامج وتفعل الشيء مباشرة. ثم ظهر برنامج ينفذ الأوامر. الآن أفتح المشروع فتعمل داخله كيانات يكفي أن تصف لها النية.
واحدة تقرأ الكود، وأخرى تدرس المعمارية، وثالثة تصلح الواجهة، ورابعة تتحقق من نتيجة الأولى، وخامسة قد تكتب ترحيل قاعدة بيانات وأنا في الطريق لمعاينة تاون هاوس. أتوقف تدريجياً عن أداء كل حركة بيدي وأصبح أكثر فأكثر من يحدد اتجاه الحركة.
كنت أصمم الواجهة بين الإنسان والبرنامج. الآن أصممها بين النية البشرية وعدد من المنفذين الاصطناعيين. وفجأة اتضح أن كلمات المبرمجين القديمة باتت ضرورية لي بالذات.
لأنك إذا كان يعمل عندك شخص واحد جاز أن تراهن على ذاكرته. مع الوكلاء ينتهي هذا الأمل سريعاً. يحتاجون إلى أرض وقواعد وتاريخ وفهم ما يجوز لمسه هنا وما لا يجوز. يحتاجون إلى سياق على هيئة ملفات، لا حدسي.
هكذا دخل حياتي .gitignore، واكتشفت على نحو غير متوقع أنه من أكثر الأشياء فلسفية في التطوير كله.
.gitignore هو قائمة بما ينبغي أن ينساه العالم.
ليس كل شيء جديراً بالتاريخ. هناك ملفات مؤقتة وأسرار ونفايات ومخرجات مرحلية وأشياء تعيش على جهازك وحده ولا يلزم إرسالها أبعد. لحفظ الذاكرة جيداً عليك أولاً تحديد ما لا يحتاج إلى تذكر. يبدو أن البشرية وصلت إلى هذه الفكرة بعد Git بمدة طويلة.
ثم هناك AGENTS.md وملفات أخرى تترك فيها تعليمات لمن يأتي بعدك. ولم يعودوا بالضرورة بشراً. تكتب حرفياً رسالة إلى كائنات المستقبل: هذا المشروع وهذه بنيته وهذه قواعده. لا تغير هذا بلا سبب. استخدم هنا النهج الآتي. اقرأ الوثائق أولاً هنا. بعد التعديلات افحص البناء. لا تلمس هذا المجلد. لا تخترع كياناً جديداً إن كان القديم موجوداً.
تعجبني هذه الكتابة الجديدة. كان أبي يكتب القصص ليحفظ عالمه وينقله إلى غيره. الآن أكتب أحياناً ليلاً تعليمات بـMarkdown، ليفهم صباحاً مثيل مجهول من الذكاء الاصطناعي كيف يعمل مشروعي. تبدو المسافة بين الفعلين هائلة، لكنني أشعر أحياناً أنها تكاد لا توجد. نفعل الشيء نفسه دوماً: نحاول نقل السياق إلى من يأتي بعدنا.

الفروع
لعل أكثر كلمة أخافتني قديماً كانت branch. فرع. الآن فهمت أخيراً لماذا كانت الشجرة استعارة بهذا الثبات. فالحياة أيضاً لا تسير في خط واحد تقريباً قط. هناك فرع رئيسي وتجربة ونسخة قررت فيها إعادة كل شيء ونسخة اتضحت خطأ، وواحدة لا تزال تخشى وصلها بالرئيسي. وهناك حتماً فرع منسي من شهرين تنظر إليه يوماً ولا تفهم من أنشأه ولماذا.أحياناً تكون هذه حياتك حرفياً.
main — موسكو.
dubai — 2022.
real-estate — 2026.
ai-orchestration — ربما تفرعت قبل ذلك بكثير، لكنها نمت طويلاً دون أن تُلحظ.
personal-brand — لا تزال قيد التطوير النشط.
وفوق هذا كله في مكان ما يوجد فرع هائل اسمه family، أقدم من معظم الأنظمة الأخرى، وله قواعد نشر خاصة ليست موثقة دائماً. لدي ثلاثة أطفال، لذا أعرف شيئاً عن الأنظمة الموزعة رغم كل شيء.
جمال الفرع أنك لا تحتاج إلى تدمير عالم اليوم لتجرب عالم الغد. تستطيع التفرع والفحص والخطأ وتغيير رأيك والعودة، أو النظر يوماً إلى النتيجة والقول: نعم، هذه النسخة أفضل. Merge.
وما كان بالأمس تجربة يصير جزءاً من التاريخ الرئيسي. أليست هذه طريقة معظم قراراتنا الجدية؟ في البداية تعيش الحياة الجديدة منفصلة. تجربها بحذر: بلد ومهنة ودور وطريقة عمل جديدة. ثم يأتي يوم لم يغلق فيه أحد رسمياً طريق العودة، لكنك تعرف: لم يعد هذا فرعاً تجريبياً. هذا هو main.

وفي مكان ما لا يزال cherry-pick ينتظر
بعد سنوات كثيرة فهمت أخيراً مطور Yandex ذاك أيضاً. لم يكن يلقنني سحراً محرماً. Cherry-pick يعني تقريباً: ليس عليك أخذ تاريخ شخص آخر كله، أحياناً يكفي أن تأخذ منه تغييراً واحداً تحتاجه.أراه من أنفع المبادئ خارج البرمجة أيضاً. ليس ضرورياً أن تصير إنساناً آخر كلياً. يكفي أحياناً commit جيد واحد.
من أبي — القدرة على رؤية قصة داخل يوم عادي. ومن تصميم المنتجات — عادة البحث عن نظام. ومن الوساطة — الانتباه إلى السعر والمكان والوقت والشخص المحدد أمامك. ومن المبرمجين — Git. ومن الذكاء الاصطناعي — السرعة. ومن دبي — إيمان شبه مرضي بأن المستقبل يمكن تخيله أولاً ثم بناؤه مادياً.
Cherry-pick.
خذ الـcommit المطلوب إلى فرعك.
ثم واصل السير.
لكن commit لا يغير شيئاً في الخارج بعد
وكان هذا اكتشافاً مهماً لي أيضاً. يمكنك عمل commits عندك بلا نهاية. المشروع رائع والتاريخ مرتب والتعديلات مثبتة، لكن ما لم تعمل push، يبقى كل هذا على جهازك فقط، في نسختك المحلية من العالم.وهنا تصير كلمة تقنية بحتة إنسانية إلى حد يكاد يؤلم. لأن حالة ما قبل push أعرفها جيداً. تعمل طويلاً وتحضر وتعيد وتفكر وتحسن. تبني موقعاً وتكتب مقالاً وتبتكر تموضعاً وتجمع منتجاً جديداً وتصور فيديو وتعيد رسم بطاقة. حسّن قليلاً بعد. افحص مرة أخرى. لا تعرضه على أحد بعد.
لدى معظم الناس مستودع محلي هائل من الأشياء التي لم تُنجز push.أظنه كبيراً جداً عند المصممين خصوصاً. نجيد صنع الجمال في Figma المغلقة. الأصعب بكثير إرسال النتيجة إلى الخارج والإقرار بأنها لم تعد ملكاً لنا وحدنا.
لعل لهذا أحببت هذه العبارة القصيرة: اعمل commit وpush. ثبّت أولاً ثم أرسل. لا تنتظر النسخة النهائية من المشروع ولا من نفسك. لن توجد، وGit لا يفترض نسخة نهائية أصلاً. ولعل هذه حكمته الكبرى.

هناك النسخة الحالية فقط.
HEAD.
اسم جيد جداً، بالمناسبة. الموضع الذي يوجد فيه رأسك الآن. ما قبله صار تاريخاً، وما بعده لم يوجد بعد.
أحياناً يحدث تعارض
طبعاً. سيكون مريباً لو خلا نظام يشبه الحياة بهذا القدر من التعارضات. غيّرت سطراً وغيّره غيرك أيضاً، والآن تطالب النسختان بالواقع. يتوقف Git ويقول: قرر بنفسك.
أحب ذلك كثيراً. لا يدّعي معرفة الجواب الصحيح. هذه حقيقة وتلك أخرى، لا يمكن دمجهما تلقائياً. هنا بالذات نحتاج إلى الإنسان — عند نقطة التعارض.
أراه جواباً جيداً لكثير من أحاديث الذكاء الاصطناعي. كلما أدت الآلات عمليات أكثر، ظهرت أوضح المواضع التي لا تحتاج إلى إنتاج بديل جديد، بل إلى اختيار نسخة من العالم. هذا عندي معنى تنسيق الذكاء الاصطناعي تحديداً: ليس جعل وكيل يعمل أسرع، بل فهم أي ما أُنجز كله يجب أن يدخل في main.
غيّر Git علاقتي بالأخطاء
في الحياة العادية يبدو الخطأ غالباً تدميراً: فعلت الشيء الخطأ، فسد كل شيء ويجب استعادة السابق بطريقة ما. في نظام إدارة الإصدارات يصير الخطأ جزءاً من التاريخ. إذا حُفظ التاريخ جيداً، لم يعد التجريب مخيفاً إلى ذلك الحد.
يمكنك النظر إلى diff، ورؤية ما تغير تحديداً واستعادة الماضي وبدء فرع جديد أو التراجع عن قرار فاشل. تمنحك هذه حرية مدهشة. ليست العصمة، فـGit لا يعد بها. بل يمنح شيئاً أنفع بكثير: قابلية التراجع.
علمني تصميم المنتجات لسنوات صنع نماذج أولية للواجهات. وعلمني Git فجأة صنع نماذج أولية للواقع.
أحياناً أفتح الطرفية مساء على MacBook، ودبي تمتد خلف النافذة. المدينة نفسها تشبه مشروعاً طوره أحدهم طويلاً أكثر مما ينبغي في فرع تجريبي، ثم تجرأ يوماً بجنون تام على دمجه في main.أعيش الآن في Palm Jumeirah، المكان الذي يشرح الفكرة بوضوح خاص. أولاً كانت فكرة ثم خط على مخطط ثم نموذج هندسي، وبعدها بدأ الناس حرفياً صب الرمل في البحر. يصعب أن أتصور أوضح من هذا مثالاً على git push للنية البشرية إلى الواقع المادي.
ما كان معلومات صار جغرافيا.
نهاراً قد أناقش فيلا: المساحة والسعر والموقع والعائد والإحداثيات وموعد التسليم. وبعد ساعة أفتح CRM وأطلب من الوكيل تغيير آلية بطاقة العقار. ثم أتحقق من diff، وأرفض نصف التعديلات وأطلب إصلاحها ثم أعمل commit وpush. وأكتب نصاً مساء. ولسبب ما لم يعد هذا كله يبدو مهناً مختلفة تماماً.
وسيط ومصمم وكاتب ومنسق ذكاء اصطناعي. كنت أريد كلمة واحدة تشرحها كلها. الآن أظن أن هذا ليس ضرورياً أصلاً. Git أيضاً لا يحاول شرح المشروع بملف واحد. إنه يحتفظ بـ تاريخ التغييرات.
ربما الإنسان يعمل بصورة مشابهة.
لسنا اسماً. نحن log.
git status
وهناك أمر آخر أحببته خصوصاً: git status. لا يبني ولا يصلح ولا ينشئ شيئاً. يقول فقط أين أنت الآن، وما تغير، وما أصبح جاهزاً للـcommit، وما بقي خارجه، وما يحدث في المشروع أصلاً.أشعر أحياناً أن الإنسان أيضاً قد يحتاج إلى أمر git status. بلا كتب تحفيز وجلسات استراتيجية ومحاولة تصميم السنوات العشر القادمة فوراً. فقط توقف وانظر: أين أنا الآن، وما تغير فيّ، وما أصبح جاهزاً للتثبيت، وما لا يزال عالقاً غير مكتمل، وما آن أوان حذفه، وما يجب إضافته إلى .gitignore، وما ينبغي أخيراً إرساله إلى الخارج.
12 أغسطس 2026. اليوم 15 208 من الحياة. اليوم 1 474 في دبي.
كنت أجلس يوماً في Yandex وأسمع «cherry-pick» كاسم طقس مجهول. الآن يعمل إلى جواري عدة وكلاء اصطناعيين معاً، وأوبخ أحدهم إذا عبث بملفات لا تخص مهمته أصلاً. العالم يغير مفردات الإنسان بسرعة مدهشة.
لكن الأمتع شيء آخر: أحياناً تأتي كلمة من اختصاص ضيق جداً وتصير فجأة اسماً لظاهرة كانت موجودة دائماً.
كنا نعمل commits دائماً. فقط لم نسمها كذلك.
أول يوم في بلد جديد — commit. ولادة طفل — commit. مغادرة شركة — commit. مهنة جديدة — commit. انتقال — commit. لحظة تقرر ألا تبقى مصمماً فقط — commit. ولحظة تفهم أن الذكاء الاصطناعي لم يعد تطبيقاً تستخدمه، بل بيئة جديدة تستطيع البناء داخلها — commit آخر.
لكن commits وحدها لا تكفي في الحياة.
يمكن أن تعيش تاريخاً داخلياً هائلاً دون أن تعرضه على أحد. أن تستعد إلى الأبد لتصبح شخصاً، وتجمع منتجاً مثالياً محلياً، وتكتب نصاً رائعاً في المسودة، وتصور فيديو وتتركه في Photos، وتنشئ موقعاً لن يفتحه أحد، أو تتخيل حياة جديدة تبقى فرعاً تجريبياً إلى الأبد.
لذلك صار الجزء الثاني من التعويذة عندي اليوم أهم حتى من الأول.
اعمل push
أرسل التعديلات إلى حيث يوجد بقية العالم. ليظهر remote. لتبدأ مراجعة غيرك، وليختلف أحد، ولينشأ تعارض، وليتضح أن شيئاً ما يحتاج إصلاحاً وcommit تالياً.هذه هي الحركة.
لعل لهذا أحب الآن، حين ينهي الوكيل عملاً ويسألني ماذا يفعل بعده، أن أجيب بكلمتين. فيهما شيء أبوي تقريباً — كأن كبيراً يرسل أصغر في الطريق ولا ينوي الإطالة في شرح العالم، لأن الطريق سيشرحه أفضل مهما يكن.
اعمل commit وpush
احفظ ما غيرت، ولا تتركه عندك وحدك.




@nevsky_alexander
على Instagram، دبي بعيدًا عن صور البطاقات البريدية: العائلة والمدينة والاكتشافات والحياة بين المشاريع. وعلى Threads، أفكار بصوت عالٍ عن التصميم والذكاء الاصطناعي. أما YouTube فللفيديوهات التي تحتاج مساحة أكبر من الستوري. تابعوني حيث يناسبكم، ولنبقَ على تواصل