بسم الله الرحمن الرحيم
هذا الدرس الثاني من سلسلة شرح نظام إدارة النُّسَخ الموزع Git، التي استفتحناها بدرس (نظام إدارة النُّسَخ)، وفي درس اليوم سنثبت Git، نظام إدارة النُّسَخ الموزع (راجع الدرس الأول) وسننشئ مستودعًا.
لا تستهن بالدروس الأولى في كل فن وعلم، ولا تتخطاها قافزًا إلى ما يتقدمها، ومن يفعل ذلك فإنه كما قال ابن حزم في رسالته (مراتب العلوم): (…فإن من رام الارتقاء إلى أرفع العلوم دون معاناة ما لا يوصل إليه إلا به = كمن رام الصعود إلى علّيةٍ مفتحة مظلمة أنيقة البناء دون أن يتكلف التنقل إليها في الدرج والمراقي التي لا سبيل إلى تلك العلّية إلا بها).
لنشرع بتثبيت جت للمنصات الثلاث!
تنزيل جت
نبدأ بالبغيض ويندوز:
١. نذهب إلى هذا الرابط ونحمل النسخ الحديثة، وثم نشغله.

٢. سيسألك أين تود تثبيته؟ اضغط واصل next.

٣. اترك كل شيء على حاله واضغط واصل next، ثم اضغط مواصلة مرة أخرى.

٤. سيسألك لتختار محرر النصوص المراد، اختره ثم اضغط واصل next.

٥. اتركه على حاله (Let Git Decide) واضغط واصل next.

٦. سيسألك الآن لتختار كيف ستستعمل جت، اختر الخيار الأوسط (Git from the command line and also from 3rd-party software):

٧. سيسألك عن الملف التنفيذي الخاص بـSSH، اختر الأول (Use bundled OpenSSH)، ثم واصل:

٨. اختر الخيار الثاني (Use the native windows secure channel library)، ثم واصل واضغط مرة أخرى واصل (الخطوة التالية).
ثم انتظره وسيثبته وتظهر لك هذه الصورة.
تثبيته على لينكس
تثبته أسهل ما يكون، ثبته باستعمال نظام الحزم الخاص بالتوزيعة!
إن كنت على دبيان وعائلته فاكتب:
sudo apt install git
وإن كنت على فيدورا أو red hat فاكتب:
sudo dnf install git
أما إن كنت على آرش فاكتب:
sudo pacman -S git
ما أظن مستعمل لينكس يحتاج هذه الخطوة، لكن ذكرتها.
تثبيته على ماك
سنثبته باستعمال مدير الحزم brew، فإن لم يكن مدير الحزم هذا مثبتا عندك فافتح المِطراف Terminal، واكتب الأمر التالي:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ثم اكتب هذا الأمر ليثبت جت:
brew install git
ألا ترى سهولة تثبيته على لينكس وماك أما ويندوز فنظام بغيض؟
طبقات الإعداد
وقد ثبتنا git فعلينا ضبط بعض الإعدادات، نتعرض للإعدادات الضرورية اليوم، وباقيها إلى دروس أخرى آتية إن شاء اللّٰه.
ضبط الإعدادات يكون بالأمر :
git config
متبوعًا بالإعداد الذي تود ضبطه.
لكن لحظة واحدة يا مبعسس، إعدادات؟ أين يخزنها؟ في أي مكان؟
= بحسب طبقة الإعداد الذي تريده أنت، وهي تنقسم إلى ثلاث طبقات:
طبقة النظام system level: هذا الإعداد يسري على جميع المستخدمين users في النظام، وعلى كل مستودع ستعمل عليه، وهذا يكون بإلحاق الخيار system– إلى الأمر git config.
مكان تخزينه في لينكس وماك:
/etc/gitconfig
أما في ويندوز:
C:\ProgramData\Git\confog
يلزمك في هذ الطبقة صلاحيات المدير حتى تغير الإعدادات.
طبقة المستخدم user level: هذا الإعداد يسري على هذا المستخدم لوحده، وعلى كل المستودعات التي سيعمل عليها، ويكون هذا بإلحاق الخيار global– إلى الأمر.
مكان تخزينه في لينكس وماك يكون في مجلد الدار home الخاص بالمستخدم:
~/.gitconfig
~/.config/git/config
أما في ويندوز:
C:\Users\YourUserName\.gitconfig
استبدل YourUserName باسم مستخدمك.
طبقة المستودع repository level: يسري هذا الإعداد على المستودع الذي تعمل به الآن، ولا يتعداه إلى غيره، وهذا يكون بإلحاق الخيار local– إلى الأمر، وهذا الخيار سبق تضمينه default، لذا لا تكتبه فهو مُضمن. مكان تخزينه يكون في نفس المستودع:
.git/config
وأي هذه الطبقات لها الأسبقية يا مبعسس؟ من أي مكان سيذهب Git لأخذ الإعدادات أولًا؟
سيبدأ من آخر طبقة، طبقة المستودع، سيبحث أولًا عن الإعدادات في طبقة المستودع ثم في طبقة المستخدم ثم في طبقة النظام.
لنرَ مثالًا!
إعداد الهوية
ألم نقل أن جت يمكننا من التعاون مع بعضنا في برمجة مشروع؟
لذا يتوجب علينا إعداد هويتنا التي تخبر من الذي أحدث هذا التغيير في المشروع. سنضيف اسمنا وبريدنا الرقمي، لكن تمهل قليلًا، في أي طبقة نود أن يكون الإعداد؟
إن أردت أن تكون هذه الهوية لكل مستخدم على النظام فاستعمل طبقة النظام، أما أنا أريده في طبقة المستخدم، لذا سأستعمل الخيار global–:
git config --global user.name "MrNarsus"
git config --global user.email "[email protected]"
أعددنا الهوية، لنشرع في إنشاء مستودع!
إنشاء مستودع
كيف نجعل جيت يتعقب التغييرات التي سنحدثها على مشروعنا؟
عرفنا في الدرس الأول أن جيت يخزنها في مستودع repository، وهذا المستودع ليس إلا قاعدة معطيات database يخزن فيها كل تغيير نحدثه، فكيف ننشئ هذا المستودع؟
سهل! هب أنك تبرمج مشروعًا، والمشروع في مجلد اسمه my_project، سنفتح مِطرافًا terminal وندخل إلى المجلد المطلوب ونكتب أمر:
git init
الأمر الآنف ينشئ مجلدًا مخفيًا اسمه git.، وهذا المجلد يحوي كل الملفات المطلوبة التي يحتاجها git. وهذه طريقة لإنشاء مستودع في حاسوبنا، وتستطيع أيضا أن تجلب نسخة من مستودع على خادوم، مثلا تجلب مستودعًا نشره فلان في موقع GitHub، وذلك بالأمر git متبوعًا بكلمة استنساخ clone ثم الرابط:
git clone https...
كيف نجعل جيت يتعقب التغييرات التي سنحدثها على مشروعنا؟
جيت لا يتعقب كل ملف في المجلد، فلو أنشأت ملفًا وعدلت عليه فلن يتعقبه، لن يتعقبه حتى تخبره أنت بذلك. وتفصيل الموضوع في مقالٍ تالٍ لهذا إن شاء اللّٰه، لأنه مقال بكله.
الخاتمة
ها قد وصلنا إلى نهاية المقال، وها أنا أخط بقلمي الخطوط الأخيرة لهذا المقال الشائق، وأرجو إني قد وفِّقت في الشرح.
وفي نهاية الأمر لا يسعني سوى أن أشكرك على حسن قراءتك لهذا المقال، وأني لبشر أصيب وأخطِئ، فإن وفِّقت في طرح الموضوع فمن اللّٰه عز وجل وإن أخفقت فمن نفسي والشيطان.
أرجو منك تقييم كفاءة المعلومات من أجل تزويدي بالملاحظات والنقد البناء في خانة التعليقات أو عبر حساب الموقع، والسلام عليكم ورحمة اللّٰه تعالى وبركاته.