Yarob | يعرُب 💻
Yarob | يعرُب 💻

@YarHmm

10 تغريدة 6 قراءة May 16, 2022
لكي تفهم أداة git بمفاهيمها المختلفة فأرى شخصيا ألا تنظر إليها كخطوط متفرعة و كل خط يمثل فرعا معينا كما هو السائد عند شرح git، بل عليك أن تنظر إلى كل فرع على أنه مؤشر يشير إلى commit و هي الطريقة التي بني عليها أصلا باستخدام ال linked list & graph
لماذا؟ إليك الجواب..👇🏻
كمراجعة لل data structure فال linked list هي عبارة عن سلسلة متصلة من العقد و كل عقدة تشير إلى ما قبلها أو ما بعدها لبناء السلسلة، و لديك مؤشر لبداية السلسلة. هذا تماما هو المبدأ الذي تم بناء git على أساسه حتى يبني لك التاريخ (history) من إصدارات الكود المختلفة
لكن بالإضافة لهذه العقد، هناك مؤشرات (أسهم - و هي في نهاية الأمر عبارة عن متغيرات) تشير إلى عقد محددة. ما هي هذه الأسهم؟ هي في واقع الأمر تمثل الفروع. كل فرع تنشئه هو عبارة عن سهم يشير إلى العقدة التي تقف عليها حاليا ليمثل لك مرجعا سهلا لهذه العقدة عند عمل ال checkout (الانتقال).
تصور ال git بشكله الفعلي (linked list) هو ما سيكوّن الفهم الحقيقي ل git و للكثير من الحالات المختلفة التي قد يصعب فهمها و تصورها في طريقة الفهم المعتمدة على الخطوط و تفرعاتها.
مثلا..
- ال merge
- ال rebase
- كيف سيصبح شكل ال history عند عمل merge
و غيرها..
و هناك العديد من الأمور الأخرى المتعلقة ب git و التي ستجدها واضحة لك بشكل أكبر عند تصور فكرة ال linked list.
مثلا.. ال tag هو في واقع الأمر مؤشر كذلك تماما كما هو أي branch، الفرق أن ال tag لا يمكنك تحريكه لعقدة أخرى فهو ثابت للأبد لكي يرمز لإصدار معين، أما الفرع فمتحرك.
أحد أبرز و أشهر المصادر في تعلم git بمفاهيمه المختلفة هو كتاب pro git الالكتروني و المتوفر بعدد كبير من اللغات (ليس منها العربية للأسف)، ستجده يعتمد في شرحه دائما على فكرة ال linked list ليوضح لك بالتفصيل ما الذي يجري خلف الكواليس
هذه الطريقة (السلسلة المتصلة و المؤشرات - liked list) هي التي سأعتمد عليها بشكل أساسي في ورشة العمل غدا (الإثنين) في شرح أساسيات git و إدارة الإصدارات،
علما أن المقاعد المتبقية للتسجيل أصبحت معدودة فلا يفوتك 😄
و كذلك إن كنت مهتما بفهم git بالتفصيل حتى تفهم تماما طريقة التعامل معه، فإليك هذا الكورس المجاني الذي سجلته في قناتي على اليوتيوب و الذي يشرح المفاهيم استنادا لفكرة ال linked list بشكل كلي
youtube.com
و إليك رابط كتاب pro git book و الذي اعتمدت عليه بشكل أساسي في الفهم التفصيلي ل git لنفسي أولا، و حتى يساعدني على شرح git للمتعلمين ثانيا git-scm.com
أخيرا.. قد يكون الأسهل شرح git على أنه سلسلة من الخطوط و التفرعات في حال كان الشرح سريعا أو عابرا، لكن إن كان له وقت مخصص له فالأفضل شرحه كما تم بناؤه بشكل ال linked list
إن كنت متعلما فستفهمه بشكل أفضل حتى و إن أخذ وقتا أطول.
و إن كنت معلما فستفتح مجالا أكبر لاستيعاب المتعلمين.

جاري تحميل الاقتراحات...