diff --git a/downloads/ar/github-git-cheat-sheet.md b/downloads/ar/github-git-cheat-sheet.md index 705ba71d3..e6f7ac5a4 100644 --- a/downloads/ar/github-git-cheat-sheet.md +++ b/downloads/ar/github-git-cheat-sheet.md @@ -1,118 +1,99 @@ ---- layout: cheat-sheet redirect_to: false -title:
أمر Git هو نظام تحكم بالنسخ الموزعة المفتوحة المصدر التي توظف أنشطة GitHub في الحواسيب الشخصية. هذه "البرشامة" تلخص تعليمات Git الأكثر استخداماً على سطر الأوامر كمرجع سري
-leadingpath: ../../../ +title: مرجع أوامر Git من GitHub +byline: Git هو نظام مفتوح المصدر للتحكم في الإصدارات الموزعة، يتيح إدارة الأنشطة على GitHub من جهازك. يلخص هذا المرجع الأوامر الأكثر شيوعًا لاستخدام Git عبر سطر الأوامر. +leadingpath: ../../ --- {% capture colOne %} -نظام GitHub يوفر برنامج عميل لسطح المكتب يشمل واجهة مستخدم رسومية لنشاطات المستودعات الأكثر شيوعاً وتحديث نسخة سطر أوامر Git تلقائياً للحالات المتقدمة.
+## تثبيت Git + +### GitHub Desktop +[desktop.github.com](https://desktop.github.com) + +### Git لجميع الأنظمة +[git-scm.com](https://git-scm.com) + +## إعداد الأدوات +تهيئة معلومات المستخدم لجميع المستودعات المحلية: -توزيعات Git لأنظمة لينكس وPosix متوفرة في موقع Git SCM الرسمي.
+```$ git config --global user.email "[البريد الإلكتروني]"``` -إعداد معلومات المستخدم لجميع المستودعات المحلية
+```$ git config --global color.ui auto``` -$ git config --global user.name "[الاسم]"
إعداد الاسم المراد إدراجه في إجراءات تنفيذ أو "ارتكاب" التغييرات
+## الفروع Branches -$ git config --global user.email "[البريد الالكتروني]"
إعداد البريد الالكتروني المراد إدراجه في إجراءات تنفيذ أو "ارتكاب" التغييرات
+الفروع هي جزء أساسي من العمل مع Git. أي تغييرات تحفظها ستكون مرتبطة بالفرع الذي تعمل عليه حاليًا. استخدم `git status` لمعرفة الفرع الحالي. +```$ git branch [اسم-الفرع]``` -بدء مستودع جديد أو الحصول على مستودع موجود مسبقاً عن طريق وصلة
+لإنشاء فرع جديد. +```$ git switch -c [اسم-الفرع]``` -$ git init [اسم المشروع]
صنع مستودع جديد بالمسمى المعطى
+```$ git merge [الفرع]``` +لدمج تاريخ فرع معين في الفرع الحالي. غالبًا يتم ذلك عبر طلبات السحب (Pull Requests). -$ git clone [رابط المشروع]
تحميل مشروع بماضيه الشامل لكل النسخ الحالية والسابقة
+لحذف فرع معين. {% endcapture %}مراجعة التغييرات وتشكيل إجراء "ارتكاب" التغييرات
- - -$ git status
إدراج جميع الملفات الجديدة أو التي تم تغييرها وتنتظر أن يتم ارتكابها
- - -$ git diff
إظهار كل التغييرات في الملفات المتغيرة التي لم يتم إضافتها لقائمة الترحيل
- - -$ git add [اسم الملف]
إضافة الملف لقائمة الترحيل للتحضير ليتم ارتكابها
- - -$ git diff --staged
إظهار كل التغييرات في الملفات المتغيرة في قائمة الترحيل والمختلفة عن الموجودة في المستودع حالياً
+```$ git init``` +هذا الأمر يقوم بتحويل المجلد الذي تقوم بتنفيذ الأمر بداخله الى مستودع Git جديد، بعد استخدام هذا الأمر، عليك ربط المستودع المحلي بمستودع فارغ على GitHub باستخدام الامر التالي: -$ git reset [اسم الملف]
إزالة الملف من قائمة الترحيل مع الحفاظ على المحتوى الجديد دون تغيير.
+لتحديد المستودع البعيد الذي سيتم ربط المستودع المحلي به، من خلال تحديد الرابط للمستودع على GitHub. +```$ git clone [رابط]``` -$ git commit -m"[تعليق توضيحي]"
ارتكاب التغييرات الموجودة في قائمة الترحيل وحفظها في ماضي النسخ
+## ملف .gitignore -تسمية مجموعة من التغييرات المرتكبة وجمع الجهود المكتملة
+لتجاهل بعض الملفات ومنع تتبعها بواسطة Git. عادةً يتم ذلك باستخدام ملف خاص يسمى `.gitignore`. يمكنك العثور على قوالب مفيدة لهذا الملف عبر الرابط: [github.com/github/gitignore](https://github.com/github/gitignore). +## مزامنة التغييرات -$ git branch
إدراج قائمة بكل الفروع المحلية للمستودع الحالي
+```$ git fetch``` +لتحميل جميع التغييرات من الفروع البعيدة. -$ git branch [اسم الفرع]
تكوين فرع جديد
+لدمج التغييرات من الفروع البعيدة في الفرع المحلي الحالي. +```$ git push``` -$ git switch -c [اسم الفرع]
التغيير إلى فرع معين وتحديث المسار الحالي
+```$ git pull``` - -$ git merge [اسم الفرع]
دمج الفرع الحالي بفرع آخر ماضي
- - -$ git branch -d [اسم الفرع]
حذف فرع معين
+لتحديث الفرع المحلي الحالي بجميع التغييرات الجديدة من الفرع البعيد المقابل. `git pull` يجمع بين `git fetch` و `git merge`. {% endcapture %}تحريك وإزالة الملفات التي تتم متابعة نسخها
- - -$ git rm [اسم الملف]
حذف الملف وإضافة عملية الحذف لقائمة الترحيل
+استعراض وفحص تطور الملفات داخل المشروع: +```$ git log``` -$ git rm --cached [اسم الملف]
إلغاء عملية تتبع نسخ الملف مع الحفاظ على الملف محلياً (الملف موجود محليّاً لكنه لا يظهر على Github(
+```$ git log --follow [ملف]``` +لعرض تاريخ إصدار ملف معين، بما في ذلك التغييرات السابقة على الاسم (Renames) (يعمل لملف واحد فقط). -$ git mv [اسم الملف الأصلي] [اسم الملف الجديد]
تغيير اسم الملف والتحضير لارتكاب التغييرات
+لعرض الاختلافات بين فرعين. -استثناء الملفات والمجلدات المؤقتة
+```$ git show [تعديل]``` -
-*.log
-build/
-temp-*
-
استخدام ملف نصي بمسمى .gitignore
يمنع تتبع الملفات والمجلدات الغير مرغوبة بتحديد أنماط تسمية هذه الملفات
$ git ls-files --others --ignored --exclude-standard
سرد قائمة بكل الملفات التي تم تجاهلها في المشروع الحالي
+لحفظ التغييرات بشكل دائم في الإصدار. -التخزين الجانبي واستعادة المتغيرات غير المكتلمة
+## إعادة تنفيذ التعديلات +لإصلاح الأخطاء أو تعديل السجل: -$ git stash
تخزين مؤقت لكل الملفات المتغيرة التي تتم متابعتها
+لإلغاء جميع التعديلات بعد `[تعديل]` مع الحفاظ على التغييرات محليًا. +```$ git reset --hard [تعديل]``` -$ git stash pop
استعادة آخر الملفات المتغيرة التي تم تخزينها مؤخراً بشكل مؤقت
- - -$ git stash list
سرد قائمة بكل عمليات التخزين المؤقتة التي لم يتم استعادتها بعد
- - -$ git stash drop
التخلص من آخر الملفات المتغيرة التي تم تخزينها مؤخراً بشكل مؤقت
+> **تحذير!** تغيير السجل قد يسبب مشاكل كبيرة، خاصة إذا تم دفع التعديلات إلى GitHub. كن حذرًا واطلب المساعدة إذا لزم الأمر عبر [github.community](https://github.community) أو دعم GitHub. {% endcapture %}تصفح وتفحص تطور ملفات المشروع
- - -$ git log
سرد قائمة بماضي النسخ للفرع الحالي
- - -$ git log --follow [اسم الملف]
سرد قائمة بماضي نسخ ملف معين (يشمل تغيير الاسم)
- - -$ git diff [الفرع الثاني]...[الفرع الأول]
عرض اختلافات المحتوى من فرع لآخر
- - -$ git show [عملية ارتكاب]
عرض البيانات الوصفية وتغييرات المحتوى لعملية ارتكاب معينة
- -مسح الأخطاء واستبدال جزء من الماضي
- - -$ git reset [عملية ارتكاب]
إلغاء جميع عمليات ارتكاب التغييرات بعد [عملية ارتكاب]
مع الحفاظ على التغييرات محليّاً
$ git reset --hard [عملية ارتكاب]
إلغاء جميع عمليات ارتكاب التغييرات واستعادة الملفات إلى وضعها السابق وقت عملية ارتكاب التغييرات
- -تسجيل علامة مرجعية للمستودع وتبادل ماضي النسخ
- - -$ git fetch [علامة مرجعية]
تحميل كل ماضي المستودع من العلامة المرجعية
- - -$ git merge [فرع]/[علامة مرجعية]
دمج فرع لعلامة مرجعية مع الفرع المحلي الحالي
- - -$ git push [alias] [فرع]
رفع كل عمليات ارتكاب التغيرات للفرع المحلي على Github
- - -$ git pull
تحميل ماضي العلامة المرجعية ودمج التغييرات
+## المصطلحات + +- **git**: نظام مفتوح المصدر لإدارة الإصدارات الموزعة. +- **GitHub**: منصة لاستضافة التعاون على مستودعات Git. +- **commit (تعديل)**: كائن Git يمثل لقطة من المستودع بالكامل. +- **branch (فرع)**: مؤشر متحرك خفيف يشير إلى تعديل. +- **clone (استنساخ)**: نسخة محلية من مستودع يشمل جميع الفروع والتعديلات. +- **remote (بعيد)**: مستودع مشترك على GitHub لتبادل التغييرات بين الأعضاء. +- **fork (نسخة)**: نسخة من مستودع على GitHub يملكها مستخدم آخر. +- **pull request (طلب سحب)**: مساحة لمقارنة ومناقشة الفروقات بين الفروع. +- **HEAD**: يشير إلى مسار العمل الحالي. يمكن تحريكه بين الفروع أو التعديلات باستخدام `git switch`. {% endcapture %}