تنصيب Git

نظام GitHub يوفر برنامج عميل لسطح المكتب يشمل واجهة مستخدم رسومية لنشاطات المستودعات الأكثر شيوعاً وتحديث نسخة سطر أوامر Git تلقائياً للحالات المتقدمة.

GitHub لنظام تشغيل وندوز

https://windows.github.com

GitHub لنظام تشغيل ماك

https://mac.github.com

توزيعات Git لأنظمة لينكس وPosix متوفرة في موقع Git SCM الرسمي.

Git لكل أنظمة التشغيل

https://git-scm.com

إعادة تكوين الأدوات

إعداد معلومات المستخدم لجميع المستودعات المحلية

$ git config --global user.name "[الاسم]"

إعداد الاسم المراد إدراجه في إجراءات تنفيذ أو "ارتكاب" التغييرات

$ git config --global user.email "[البريد الالكتروني]"

إعداد البريد الالكتروني المراد إدراجه في إجراءات تنفيذ أو "ارتكاب" التغييرات

صنع المستودعات

بدء مستودع جديد أو الحصول على مستودع موجود مسبقاً عن طريق وصلة

$ git init [اسم المشروع]

صنع مستودع جديد بالمسمى المعطى

$ git clone [رابط المشروع]

تحميل مشروع بماضيه الشامل لكل النسخ الحالية والسابقة

إحداث تغييرات

مراجعة التغييرات وتشكيل إجراء "ارتكاب" التغييرات

$ git status

إدراج جميع الملفات الجديدة أو التي تم تغييرها وتنتظر أن يتم ارتكابها

$ git diff

إظهار كل التغييرات في الملفات المتغيرة التي لم يتم إضافتها لقائمة الترحيل

$ git add [اسم الملف]

إضافة الملف لقائمة الترحيل للتحضير ليتم ارتكابها

$ git diff --staged

إظهار كل التغييرات في الملفات المتغيرة في قائمة الترحيل والمختلفة عن الموجودة في المستودع حالياً

$ git reset [اسم الملف]

إزالة الملف من قائمة الترحيل مع الحفاظ على المحتوى الجديد دون تغيير.

$ git commit -m"[تعليق توضيحي]"

ارتكاب التغييرات الموجودة في قائمة الترحيل وحفظها في ماضي النسخ

التغييرات الجماعية

تسمية مجموعة من التغييرات المرتكبة وجمع الجهود المكتملة

$ git branch

إدراج قائمة بكل الفروع المحلية للمستودع الحالي

$ git branch [اسم الفرع]

تكوين فرع جديد

$ git checkout [اسم الفرع]

التغيير إلى فرع معين وتحديث المسار الحالي

$ git merge [اسم الفرع]

دمج الفرع الحالي بفرع آخر ماضي

$ git branch -d [اسم الفرع]

حذف فرع معين

إزالة وتغيير الملفات

تحريك وإزالة الملفات التي تتم متابعة نسخها

$ git rm [اسم الملف]

حذف الملف وإضافة عملية الحذف لقائمة الترحيل

$ git rm --cached [اسم الملف]

إلغاء عملية تتبع نسخ الملف مع الحفاظ على الملف محلياً (الملف موجود محليّاً لكنه لا يظهر على Github(

$ git mv [اسم الملف الأصلي] [اسم الملف الجديد]

تغيير اسم الملف والتحضير لارتكاب التغييرات

قمع تتبع الملفات

استثناء الملفات والمجلدات المؤقتة

*.log build/ temp-*

استخدام ملف نصي بمسمى .gitignore يمنع تتبع الملفات والمجلدات الغير مرغوبة بتحديد أنماط تسمية هذه الملفات

$ git ls-files --others --ignored --exclude-standard

سرد قائمة بكل الملفات التي تم تجاهلها في المشروع الحالي

حفظ المتغيرات الصغيرة

التخزين الجانبي واستعادة المتغيرات غير المكتلمة

$ git stash

تخزين مؤقت لكل الملفات المتغيرة التي تتم متابعتها

$ git stash pop

استعادة آخر الملفات المتغيرة التي تم تخزينها مؤخراً بشكل مؤقت

$ git stash list

سرد قائمة بكل عمليات التخزين المؤقتة التي لم يتم استعادتها بعد

$ git stash drop

التخلص من آخر الملفات المتغيرة التي تم تخزينها مؤخراً بشكل مؤقت

مراجعة ماضي التغييرات

تصفح وتفحص تطور ملفات المشروع

$ git log

سرد قائمة بماضي النسخ للفرع الحالي

$ git log --follow [اسم الملف]

سرد قائمة بماضي نسخ ملف معين (يشمل تغيير الاسم)

$ git diff [الفرع الثاني]...[الفرع الأول]

عرض اختلافات المحتوى من فرع لآخر

$ git show [عملية ارتكاب]

عرض البيانات الوصفية وتغييرات المحتوى لعملية ارتكاب معينة

التراجع عن عمليات الارتكاب

مسح الأخطاء واستبدال جزء من الماضي

$ git reset [عملية ارتكاب]

إلغاء جميع عمليات ارتكاب التغييرات بعد [عملية ارتكاب] مع الحفاظ على التغييرات محليّاً

$ git reset --hard [عملية ارتكاب]

إلغاء جميع عمليات ارتكاب التغييرات واستعادة الملفات إلى وضعها السابق وقت عملية ارتكاب التغييرات

مزامنة التغييرات

تسجيل علامة مرجعية للمستودع وتبادل ماضي النسخ

$ git fetch [علامة مرجعية]

تحميل كل ماضي المستودع من العلامة المرجعية

$ git merge [فرع]/[علامة مرجعية]

دمج فرع لعلامة مرجعية مع الفرع المحلي الحالي

$ git push [alias] [فرع]

رفع كل عمليات ارتكاب التغيرات للفرع المحلي على Github

$ git pull

تحميل ماضي العلامة المرجعية ودمج التغييرات