





السمعة:
بسم الله الرحمن الرحيم
اللهم اجعل عملنا خالصًا لوجهك الكريم ولا تجعل لأحدٍ فيه سواك شيئًا يارب العالمين
أداة git هي (version control system) أي أنها أداة تساعد المطورين في إدارة وتتبع التعديلات على الملفات البرمجية عبر الزمن بحيث يمكنهم الرجوع إلى أي نسجة سابقة في المشروع في أي وقت. تم إنشاؤها بواسطة Linus Torvalds في عام 2005، وتم صيانتها بواسطة Junio Hamano منذ ذلك الحين.
يتم استخدام هذه الأداة لعدة أهداف رئيسية, منها:
1- متابعة التغييرات التي تحدث على الكود.
2- متابعة من الذي قام بالتغيير.
3- تعزيز التعاون بين المبرمجين بحيث يمكن أن يعمل عدة مبرمجين على نفس المشروع.
اللهم اجعل عملنا خالصًا لوجهك الكريم ولا تجعل لأحدٍ فيه سواك شيئًا يارب العالمين
أداة git هي (version control system) أي أنها أداة تساعد المطورين في إدارة وتتبع التعديلات على الملفات البرمجية عبر الزمن بحيث يمكنهم الرجوع إلى أي نسجة سابقة في المشروع في أي وقت. تم إنشاؤها بواسطة Linus Torvalds في عام 2005، وتم صيانتها بواسطة Junio Hamano منذ ذلك الحين.
يتم استخدام هذه الأداة لعدة أهداف رئيسية, منها:
1- متابعة التغييرات التي تحدث على الكود.
2- متابعة من الذي قام بالتغيير.
3- تعزيز التعاون بين المبرمجين بحيث يمكن أن يعمل عدة مبرمجين على نفس المشروع.
ما الذي تفعله أداة git ؟
تقوم هذه الأداة بفعل عدة أمور تفيدنا جدًا في عملنا منها:
1- إدارة المشاريع باستخدام المستودعات ( Repositories )
2- استنساخ مشروع للعمل على نسخة محلية (Local copy)
3- التحكم في التغييرات وتتبعها باستخدام التدريج
4- التفرع والدمج للسماح بالعمل على أجزاء وإصدارات مختلفة من المشروع
5- سحب (pull) أحدث إصدار من المشروع إلى نسخة محلية
6- دفع (push) التحديثات المحلية إلى المشروع الرئيسي.
إذًا ما يجعل هذه الأداة مهمة جدًا هو أنه 70% من المطورين يقومون باستخدامها لأنها تمكنهم من العمل معًا من أي مكان في العالم بالإضافة إلى تمكينهم من رؤية جميع النسخ القديمة من المشاريع وإمكانية استرجاع أي منها بسهولة تامة.
1- إدارة المشاريع باستخدام المستودعات ( Repositories )
2- استنساخ مشروع للعمل على نسخة محلية (Local copy)
3- التحكم في التغييرات وتتبعها باستخدام التدريج
4- التفرع والدمج للسماح بالعمل على أجزاء وإصدارات مختلفة من المشروع
5- سحب (pull) أحدث إصدار من المشروع إلى نسخة محلية
6- دفع (push) التحديثات المحلية إلى المشروع الرئيسي.
إذًا ما يجعل هذه الأداة مهمة جدًا هو أنه 70% من المطورين يقومون باستخدامها لأنها تمكنهم من العمل معًا من أي مكان في العالم بالإضافة إلى تمكينهم من رؤية جميع النسخ القديمة من المشاريع وإمكانية استرجاع أي منها بسهولة تامة.
Git هي شيء مختلف من GitHub حيث أن GitHub هي أكبر مضيف للأكواد في العالم وتم امتلاكه من قبل مايكروسوفت في 2018
يمكنك تنزيل Git مجانًا من الموقع التالي: https://www.git-scm.com/
بالنسبة لنظام Windows، يمكنك استخدام Git bash، والذي يأتي مضمنًا في Git لنظام Windows. بالنسبة لنظامي Mac وLinux، يمكنك استخدام Terminal. سنقوم بالعمل على git bash على ويندوز بالإضافة للعمل على نظام لينكس.
تنبه: سنلاحظ عند استخدام git bash أن التعامل معها شبيه للتعامل مع نظام لينكس لأن في كلا الحالتين نستخدم الـ bash في كتابة الأوامر.
بدايةً للتحقق من تثبيت git بشكل صحيح على كلًا من النظامين نقوم بكتابة الأمر التالي:
Bash:
git --version
الآن سنقوم بعمل الأعدادات المهمة للـ git وهي إعطاءه username والـ email الخاص بنا حتى يتمكن من تسجيل جميع الأنشطة التي نقوم بها وهذه مهم جدًا بالنسبة لنا عن طريق الأوامر التالية:
Bash:
git config --global user.name "your name"
git config --global user.email "personal email"
ملاحظة: استخدم global لتعيين اسم المستخدم والبريد الإلكتروني لكل مستودع على جهاز الكمبيوتر الخاص بك إذا كنت تريد تعيين اسم المستخدم/البريد الإلكتروني للمستودع الحالي فقط، فيمكنك إزالة global
الآن دعونا بعمل مستودع خاص بنا على git ونضع به عدة ملفات لنفهم الأداة بشكل أكبر. بالبداية علينا عمل مجلد باسم shell وبنقوم بالانتقال إلى هذا المجلد:
Bash:
mkdir SHELL
cd SHELL
بعد ذلك سنقوم بتهيئة هذا المجلد ليصبح مستودع في git عن طريق الأمر التالي:
Bash:
git init
هذا الأمر يقوم بتحويل المجلد إلى مستودع وهذا يعني أن git سيعرف أن هناك مستودع تابع له عليه تتبع التغييرات التي سنجريها على الملفات التي بداخل هذا المجلد.
الآن أصبح لدينا مستودع يمكننا إضافة ملفاتنا بداخله وجعل Git يقوم بتتبع التغييرات عليه. أولًا سنقوم بإنشاء ملف باسم shell ونضع بعض المعلومات بداخله:
هكذا نكون قد ضفنا ملف shell بشكل سليم , لنقوم بالتأكد إنه أصبح من ضمن ال Repository نستخدم الأمر التالي:
Bash:
git status
نلاحظ أن ملف shell.txt هو untracked file أي أنه غير متتبع وهنا علينا ذكر بعض النقاط المهمة. تكون الملفات في Git repo بحالتين:
1- متتبعه Tracked: أن أنها ملفات يعرفها الـ git ويقوم بمراقبتها ومعرفة التعديلات التي تحدث عليها
2- غير متتبعه untracked: هذه الملفات لا يعرفها الـ git ولا يقوم بمراقبتها لأنها لم تضاف بشكل صحيح إلى المستودع.
بمعنى آخر أن ما قمنا به قبل قليل هو أننا ضفنا ملف إلى المجلد لكن لم نقم بإخبار الgit أنه عليه تتبعه. وبشكل عام أي ملف يتم إضافته يكون بشكل تلقائي untracked لجعله متتبع علينا نقله إلى بيئة الإعداد Staging environment وهي عبارة عن منطقة في git يتم فيها تخزين التعديلات بشكل مؤقت قبل تأكيدها نهائيًا في ال repo .
حتى نقوم بنقل ملفنا إلى هذه البيئة نستخدم الأمر التالي:
Bash:
git add filename
هكذا نكون قد قمنا بإخبار git أن يتتبع هذا الملف بنجاح. لنقوم بإضافة ملفات أخرى:
كما تحدثنا قبل أن أي ملف يتم إضافته يجب إخبار git به ليقوم بتتبعه. لذلك سنقوم بإضافة جميع الملفات إلى منطقة الإعداد عن طريق الأوامر التالية (يمكن استخدام أي واحده منها):
Bash:
git add --all
git add -A
لننتقل إلى حفظ الملفات بشكل نهائي عن طريق الأمر التالي:
Bash:
git commit -m "This is the first commit "
قمنا بإضافة مسج حتى يتمكن أي شخص يريد العمل على هذا المشروع الخاص بنا أن يفهم ما حدث بالضبط وهذا مهم جدًا عندما يكون العمل على مشروع كبير يضم مبرمجين من كافة أنحاء العالم.
الآن لنتمكن من رؤية جميع العمليات التي حدثت يمكننا استخدام الأمر التالي الذي يعرض لنا جميع ال commit التي حدثت من قبل وتاريخ عملها بالإضافة إلى من الذي قام بها :
Bash:
git log
نرى بأن هناك لدينا commit بجانبها أرقام وحروف بالإضافة الى (HEAD --> master) حيث أن لكل منها معنى محدد كما يلي:
1- الأرقام والحروف هي عبارة عن commit hash وهي id يتم إعطاءه من قبل git لكل commit
2- HEAD: يشير إلى آخر commit تم إضافته.
3- master: يشير إلى اسم البرانش الذي نعمل عليه حاليًا. (سيتم التحديث عنه لاحقًا)
بهذا نكون قد وصلنا إلى نهاية موضوعنا نراكم في جزء آخر بإذن الله تعالى.
دمتم بحفظ الله ورعايته