Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update the arabic cheat sheet #1097

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
245 changes: 82 additions & 163 deletions downloads/ar/github-git-cheat-sheet.md
Original file line number Diff line number Diff line change
@@ -1,250 +1,169 @@
---
layout: cheat-sheet
redirect_to: false
title: <div dir="rtl"> برشامة أوامر Git لنظام GitHub</div>
byline: <p dir="rtl"> أمر Git هو نظام تحكم بالنسخ الموزعة المفتوحة المصدر التي توظف أنشطة GitHub في الحواسيب الشخصية. هذه "البرشامة" تلخص تعليمات Git الأكثر استخداماً على سطر الأوامر كمرجع سري</p>
leadingpath: ../../../
title: مرجع أوامر Git من GitHub
byline: Git هو نظام مفتوح المصدر للتحكم في الإصدارات الموزعة، يتيح إدارة الأنشطة على GitHub من جهازك. يلخص هذا المرجع الأوامر الأكثر شيوعًا لاستخدام Git عبر سطر الأوامر.
leadingpath: ../../
---

{% capture colOne %}
<h2 dir="rtl"> تنصيب Git</h2>
<p dir="rtl">نظام GitHub يوفر برنامج عميل لسطح المكتب يشمل واجهة مستخدم رسومية لنشاطات المستودعات الأكثر شيوعاً وتحديث نسخة سطر أوامر Git تلقائياً للحالات المتقدمة.</p>
## تثبيت Git

### GitHub Desktop
[desktop.github.com](https://desktop.github.com)

### Git لجميع الأنظمة
[git-scm.com](https://git-scm.com)

## إعداد الأدوات
تهيئة معلومات المستخدم لجميع المستودعات المحلية:

<h3 dir="rtl"> GitHub لنظام تشغيل وندوز</h3>
<p dir="rtl"><a href="https://windows.github.com">windows.github.com</a></p>
```$ git config --global user.name "[الاسم]"```

<h3 dir="rtl"> GitHub لنظام تشغيل ماك</h3>
<p dir="rtl"><a href="https://mac.github.com">mac.github.com</a></p>
لتحديد الاسم الذي يتم إرفاقه مع عمليات الحفظ.

<p dir="rtl">توزيعات Git لأنظمة لينكس وPosix متوفرة في موقع Git SCM الرسمي.</p>
```$ git config --global user.email "[البريد الإلكتروني]"```

<h3 dir="rtl"> Git لكل أنظمة التشغيل</h3>
<p dir="rtl"><a href="https://git-scm.com">git-scm.com</a></p>
لتحديد البريد الإلكتروني الذي يتم إرفاقه مع عمليات الحفظ.

<h2 dir="rtl"> إعادة تكوين الأدوات</h2>
<p dir="rtl">إعداد معلومات المستخدم لجميع المستودعات المحلية</p>
```$ git config --global color.ui auto```

<p align="right"><code align="right">$ git config --global user.name "[الاسم]"</code></p>
لتفعيل تلوين المخرجات في سطر الأوامر.

<p dir="rtl">إعداد الاسم المراد إدراجه في إجراءات تنفيذ أو "ارتكاب" التغييرات</p>
## الفروع Branches

<p align="right"><code>$ git config --global user.email "[البريد الالكتروني]"</code></p>
<p dir="rtl">إعداد البريد الالكتروني المراد إدراجه في إجراءات تنفيذ أو "ارتكاب" التغييرات</p>
الفروع هي جزء أساسي من العمل مع Git. أي تغييرات تحفظها ستكون مرتبطة بالفرع الذي تعمل عليه حاليًا. استخدم `git status` لمعرفة الفرع الحالي.

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

<h2 dir="rtl"> صنع المستودعات</h2>
<p dir="rtl">بدء مستودع جديد أو الحصول على مستودع موجود مسبقاً عن طريق وصلة</p>
لإنشاء فرع جديد.

```$ git switch -c [اسم-الفرع]```

<p align="right"><code align="right">$ git init [اسم المشروع]</code></p>
للتبديل إلى فرع معين وتحديث مسار العمل.

<p dir="rtl">صنع مستودع جديد بالمسمى المعطى</p>
```$ git merge [الفرع]```

لدمج تاريخ فرع معين في الفرع الحالي. غالبًا يتم ذلك عبر طلبات السحب (Pull Requests).

<p align="right"><code>$ git clone [رابط المشروع]</code></p>
```$ git branch -d [اسم-الفرع]```

<p dir="rtl">تحميل مشروع بماضيه الشامل لكل النسخ الحالية والسابقة</p>
لحذف فرع معين.

{% endcapture %}
<div class="col-md-6">
{{ colOne | markdownify }}
</div>


{% capture colTwo %}
## إنشاء المستودعات (Repositories)

<h2 dir="rtl"> إحداث تغييرات</h2>
<p dir="rtl">مراجعة التغييرات وتشكيل إجراء "ارتكاب" التغييرات</p>


<p align="right"><code >$ git status</code></p>

<p dir="rtl">إدراج جميع الملفات الجديدة أو التي تم تغييرها وتنتظر أن يتم ارتكابها</p>


<p align="right"><code>$ git diff</code></p>

<p dir="rtl">إظهار كل التغييرات في الملفات المتغيرة التي لم يتم إضافتها لقائمة الترحيل</p>


<p align="right"><code>$ git add [اسم الملف]</code></p>

<p dir="rtl">إضافة الملف لقائمة الترحيل للتحضير ليتم ارتكابها</p>


<p align="right"><code>$ git diff --staged</code></p>
يمكن إنشاء مستودع جديد محليًا أو استنساخ مستودع موجود. إذا أنشأت مستودعًا محليًا، عليك دفعه (push) إلى GitHub لاحقًا.

<p dir="rtl">إظهار كل التغييرات في الملفات المتغيرة في قائمة الترحيل والمختلفة عن الموجودة في المستودع حالياً</p>
```$ git init```

هذا الأمر يقوم بتحويل المجلد الذي تقوم بتنفيذ الأمر بداخله الى مستودع Git جديد، بعد استخدام هذا الأمر، عليك ربط المستودع المحلي بمستودع فارغ على GitHub باستخدام الامر التالي:

<p align="right"><code >$ git reset [اسم الملف]</code></p>
```$ git remote add origin [رابط]```

<p dir="rtl">إزالة الملف من قائمة الترحيل مع الحفاظ على المحتوى الجديد دون تغيير.</p>
لتحديد المستودع البعيد الذي سيتم ربط المستودع المحلي به، من خلال تحديد الرابط للمستودع على GitHub.

```$ git clone [رابط]```

<p align="right"><code align="right">$ git commit -m"[تعليق توضيحي]"</code></p>
لاستنساخ (تحميل) مستودع موجود على GitHub، بما في ذلك الملفات files والفروع branches والتعديلات commits.

<p dir="rtl">ارتكاب التغييرات الموجودة في قائمة الترحيل وحفظها في ماضي النسخ</p>
## ملف .gitignore

<h2 dir="rtl"> التغييرات الجماعية</h2>
<p dir="rtl">تسمية مجموعة من التغييرات المرتكبة وجمع الجهود المكتملة</p>
لتجاهل بعض الملفات ومنع تتبعها بواسطة Git. عادةً يتم ذلك باستخدام ملف خاص يسمى `.gitignore`. يمكنك العثور على قوالب مفيدة لهذا الملف عبر الرابط: [github.com/github/gitignore](https://github.com/github/gitignore).

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

<p align="right"><code align="right">$ git branch</code></p>
لمزامنة المستودع المحلي مع المستودع البعيد على GitHub:

<p dir="rtl">إدراج قائمة بكل الفروع المحلية للمستودع الحالي</p>
```$ git fetch```

لتحميل جميع التغييرات من الفروع البعيدة.

<p align="right"><code align="right">$ git branch [اسم الفرع]</code></p>
```$ git merge```

<p dir="rtl">تكوين فرع جديد</p>
لدمج التغييرات من الفروع البعيدة في الفرع المحلي الحالي.

```$ git push```

<p align="right"><code align="right">$ git switch -c [اسم الفرع]</code></p>
لدفع جميع التعديلات المحلية local commits إلى GitHub.

<p dir="rtl">التغيير إلى فرع معين وتحديث المسار الحالي</p>
```$ git pull```


<p align="right"><code align="right">$ git merge [اسم الفرع]</code></p>

<p dir="rtl">دمج الفرع الحالي بفرع آخر ماضي</p>


<p align="right"><code align="right">$ git branch -d [اسم الفرع]</code></p>

<p dir="rtl">حذف فرع معين</p>
لتحديث الفرع المحلي الحالي بجميع التغييرات الجديدة من الفرع البعيد المقابل. `git pull` يجمع بين `git fetch` و `git merge`.

{% endcapture %}
<div class="col-md-6">
{{ colTwo | markdownify }}
</div>
<div class="clearfix"></div>


{% capture colThree %}
<h2 dir="rtl"> إزالة وتغيير الملفات</h2>
<p dir="rtl">تحريك وإزالة الملفات التي تتم متابعة نسخها</p>


<p align="right"><code align="right">$ git rm [اسم الملف]</code></p>
## إجراء التغييرات

<p dir="rtl">حذف الملف وإضافة عملية الحذف لقائمة الترحيل</p>
استعراض وفحص تطور الملفات داخل المشروع:

```$ git log```

<p align="right"><code align="right">$ git rm --cached [اسم الملف]</code></p>
لعرض تاريخ الإصدارات للفرع الحالي.

<p dir="rtl">إلغاء عملية تتبع نسخ الملف مع الحفاظ على الملف محلياً (الملف موجود محليّاً لكنه لا يظهر على Github(</p>
```$ git log --follow [ملف]```

لعرض تاريخ إصدار ملف معين، بما في ذلك التغييرات السابقة على الاسم (Renames) (يعمل لملف واحد فقط).

<p align="right"><code align="right">$ git mv [اسم الملف الأصلي] [اسم الملف الجديد]</code></p>
```$ git diff [فرع-أول]...[فرع-ثاني]```

<p dir="rtl">تغيير اسم الملف والتحضير لارتكاب التغييرات</p>
لعرض الاختلافات بين فرعين.

<h2 dir="rtl"> قمع تتبع الملفات</h2>
<p dir="rtl">استثناء الملفات والمجلدات المؤقتة</p>
```$ git show [تعديل]```

<p align="right"><code align="right">
*.log
build/
temp-*
</code></p>
لعرض بيانات metadata وتغييرات المحتوى المرتبطة بالتعديل (Commit).

<p dir="rtl">استخدام ملف نصي بمسمى <code dir="ltr">.gitignore</code> يمنع تتبع الملفات والمجلدات الغير مرغوبة بتحديد أنماط تسمية هذه الملفات</p>
```$ git add [ملف]```

لإعداد الملف للحفظ ضمن الإصدار الجديد.

<p align="right"><code align="right">$ git ls-files --others --ignored --exclude-standard</code></p>
```$ git commit -m "[رسالة وصفية]"```

<p dir="rtl">سرد قائمة بكل الملفات التي تم تجاهلها في المشروع الحالي</p>
لحفظ التغييرات بشكل دائم في الإصدار.

<h2 dir="rtl"> حفظ المتغيرات الصغيرة</h2>
<p dir="rtl">التخزين الجانبي واستعادة المتغيرات غير المكتلمة</p>
## إعادة تنفيذ التعديلات

لإصلاح الأخطاء أو تعديل السجل:

<p align="right"><code align="right">$ git stash</code></p>
```$ git reset [تعديل]```

<p dir="rtl">تخزين مؤقت لكل الملفات المتغيرة التي تتم متابعتها</p>
لإلغاء جميع التعديلات بعد `[تعديل]` مع الحفاظ على التغييرات محليًا.

```$ git reset --hard [تعديل]```

<p align="right"><code align="right">$ git stash pop</code></p>
لإلغاء جميع السجل والتغييرات والعودة إلى التعديل المحدد.

<p dir="rtl">استعادة آخر الملفات المتغيرة التي تم تخزينها مؤخراً بشكل مؤقت</p>


<p align="right"><code align="right">$ git stash list</code></p>

<p dir="rtl">سرد قائمة بكل عمليات التخزين المؤقتة التي لم يتم استعادتها بعد</p>


<p align="right"><code align="right">$ git stash drop</code></p>

<p dir="rtl">التخلص من آخر الملفات المتغيرة التي تم تخزينها مؤخراً بشكل مؤقت</p>
> **تحذير!** تغيير السجل قد يسبب مشاكل كبيرة، خاصة إذا تم دفع التعديلات إلى GitHub. كن حذرًا واطلب المساعدة إذا لزم الأمر عبر [github.community](https://github.community) أو دعم GitHub.

{% endcapture %}
<div class="col-md-6">
{{ colThree | markdownify }}
</div>

{% capture colFour %}
<h2 dir="rtl"> مراجعة ماضي التغييرات</h2>
<p dir="rtl">تصفح وتفحص تطور ملفات المشروع</p>


<p align="right"><code align="right">$ git log</code></p>

<p dir="rtl">سرد قائمة بماضي النسخ للفرع الحالي</p>


<p align="right"><code align="right">$ git log --follow [اسم الملف]</code></p>

<p dir="rtl">سرد قائمة بماضي نسخ ملف معين (يشمل تغيير الاسم)</p>


<p align="right"><code align="right">$ git diff [الفرع الثاني]...[الفرع الأول]</code></p>

<p dir="rtl">عرض اختلافات المحتوى من فرع لآخر</p>


<p align="right"><code align="right">$ git show [عملية ارتكاب]</code></p>

<p dir="rtl">عرض البيانات الوصفية وتغييرات المحتوى لعملية ارتكاب معينة</p>

<h2 dir="rtl"> التراجع عن عمليات الارتكاب</h2>
<p dir="rtl">مسح الأخطاء واستبدال جزء من الماضي</p>


<p align="right"><code align="right">$ git reset [عملية ارتكاب]</code></p>

<p dir="rtl">إلغاء جميع عمليات ارتكاب التغييرات بعد <code>[عملية ارتكاب]</code> مع الحفاظ على التغييرات محليّاً</p>


<p align="right"><code align="right">$ git reset --hard [عملية ارتكاب]</code></p>

<p dir="rtl">إلغاء جميع عمليات ارتكاب التغييرات واستعادة الملفات إلى وضعها السابق وقت عملية ارتكاب التغييرات</p>

<h2 dir="rtl"> مزامنة التغييرات</h2>
<p dir="rtl">تسجيل علامة مرجعية للمستودع وتبادل ماضي النسخ</p>


<p align="right"><code align="right">$ git fetch [علامة مرجعية]</code></p>

<p dir="rtl">تحميل كل ماضي المستودع من العلامة المرجعية</p>


<p align="right"><code align="right">$ git merge [فرع]/[علامة مرجعية]</code></p>

<p dir="rtl">دمج فرع لعلامة مرجعية مع الفرع المحلي الحالي</p>


<p align="right"><code align="right">$ git push [alias] [فرع]</code></p>

<p dir="rtl">رفع كل عمليات ارتكاب التغيرات للفرع المحلي على Github</p>


<p align="right"><code align="right">$ git pull</code></p>

<p dir="rtl">تحميل ماضي العلامة المرجعية ودمج التغييرات</p>
## المصطلحات

- **git**: نظام مفتوح المصدر لإدارة الإصدارات الموزعة.
- **GitHub**: منصة لاستضافة التعاون على مستودعات Git.
- **commit (تعديل)**: كائن Git يمثل لقطة من المستودع بالكامل.
- **branch (فرع)**: مؤشر متحرك خفيف يشير إلى تعديل.
- **clone (استنساخ)**: نسخة محلية من مستودع يشمل جميع الفروع والتعديلات.
- **remote (بعيد)**: مستودع مشترك على GitHub لتبادل التغييرات بين الأعضاء.
- **fork (نسخة)**: نسخة من مستودع على GitHub يملكها مستخدم آخر.
- **pull request (طلب سحب)**: مساحة لمقارنة ومناقشة الفروقات بين الفروع.
- **HEAD**: يشير إلى مسار العمل الحالي. يمكن تحريكه بين الفروع أو التعديلات باستخدام `git switch`.

{% endcapture %}
<div class="col-md-6">
{{ colFour | markdownify }}
</div>
<div class="clearfix"></div>