Git هو أحد أشهر نظم التحكم في النسخ ,والتي يرمز لها Version Control System. اختصارا: VCS
عمل Git
يقوم Git فقط بإضافة البيانات إلى قاعدة بيانات Git
الحالات الثلاثة للبيانات على Git
1- working directory: وهي البيانات الموجودة ضمن مجلد العمل.
2- staging area: وهي البيانات الموجودة ضمن منطقة الإدراج.
3- git repository: وهي البيانات التي تم إيداعها ضمن مستودع git.
سير عمل Git
1- التعديل على الملفات الموجودة في مُجلد العمل. 2- إضافة الملفات إلى منطقة الإدراج 3- إيداع الملفات commit، أي التقاط صورة عن الملفات الموجودة في منطقة الإيداع وحفظها بشكل دائم داخل مُجلد Git.
معظم التعليمات المستخدمة في Git
1- إنشاء مستودع جديد
git init
2- إضافة ملف او عدة ملفات إلى منطقة الإدراج (staging area)
git add <file_name> <file2_name>
3- إيداع الملفات الموجودة ضمن منطقة الإدراج إلى مستودع git
git commit
يمكن إضافة الخيار -m لإضافة رسالة ضمن الإيداع لتميزة عن الإيداعات الآخرى
git commit -m "enter message here ..."
يمكن ايضا إضافة الخيار -am لإضافة الملفات ضمن منطقة الإدراج وإدراجها فورا إلى مستودع git دون الحاجة إلى تعليمة add
git commit -am "enter message here ..." 4- تفحص/تحقق من حالة الملفات
git status
5- إظهار الاختلاف بالملفات بين مجلد العمل(working directory) ومنطة الإدراج(staging area)
git diff
6- إظهار قائمة بجميع الإيداعات التي تمت ضمن مستودع git
git log
7- إظهار HEAD (يشير الرأس إلى آخر إيداع تم إضافة ويمكن تعديل المؤشر HEAD)
git show HEAD
8- إلغاء التعديلات التي تم إجرائها ضمن الملف معين واستبدال محتواه بمحتوى HEAD
git checkout HEAD <file_name>
9- إلغاء التغيرات التي طرأت على ملف و تم إدراجها إلى منطقة الإدراج (staging area)
git reset HEAD <file_name>
هذه التعليمة تؤثر فقط على منطقة الإدراج وليس لها تأثير على مجلد العمل، اي التغيرات التي تم إلغائها ضمن منطقة الإدراج تبقى ضمن مجلد العمل
10- العودة إلى إيداع سابق commit باستخدام اول 7 ارقام من اليسار ل sha الخاصة بالإيداع(يمكن عرض الإيداعات ومعرفة sha عبر تعليمة git log)
git reset SHA
هذه التعليمة خطيرة لانها تقوم بحذف كل الإيداعات اليت تلي الإبداع المطلوب الرجوع إليه مثلا لو لدي 3 إيداعات (1-2-3 ) واردت الرجوع إلى الإيداع 2 فإن الإيداع 1 يتم حذفه
11- إنشاء فرع جديد (branch)
git branch new <branch_name>
12- غرض قائمة بالفروع الموجود ضمن مجلد git
git branch
13- للانتقال إلى فرع جديد للعمل عليه
git checkout <branch_name>
يمكن إضافة الخيار -b للتعليمة السابقة ليتم إنشاء فرع جديد والانتقال عليه فورا(يعني اختصار لتعليمتين 12-13)
git checkout -b <branch_name>
14- لحذف فرع ما من مجلد git
git branch -d <branch_name>
15 - لدمج فرعين مع بعض لنفرض مثلا اننا بالفرع master ونريد دمج الفرع branch_name معه
git merge <branch_name>
في حال كان لم يكن هناك تغيرات ضمن الفرع matser بعد إنشاء الفرع branch_name منه. العملية السابقة تتم بشكل سليم أما إذا كان هناك تغيرات سيكون هناك تضارب وسيكون هناك إجراءات آخرى
14- إنشاء نسخة من مستودع(سواء من خادوم بعيد أو محلي)
git clone path/to/repository path/to/repository
15- عرض قائمة ب remote
git remote -V
16- دمج التغيرات الموجودة ضمن مستودع بعيد مع مستودع محلي
gir merge origin/master
17- دفع التغيرات إلى مستودع بعيد
git push origin <branch_name>
18- أخيرا جلب اي تغيرات ضمن مستودع بعيد لتحديث المستودع المحلي
git fetch