ورقة Git المرجعية
آخر تحديث
الإعداد والتهيئة
إعداد لمرة واحدة لتُنسب إيداعاتك بشكل صحيح.
| الأمر | وظيفته |
|---|---|
git config --global user.name "Ada" | تعيين اسمك في الإيداعات |
git config --global user.email you@x.com | تعيين بريدك الإلكتروني في الإيداعات |
git config --list | عرض كل الإعدادات الحالية |
git config --global init.defaultBranch main | تسمية الفرع الأول للمستودعات الجديدة main |
git config --global core.editor "code --wait" | تعيين محرّرك الافتراضي |
git --version | طباعة إصدار Git المثبّت |
الإنشاء والاستنساخ
بدء مستودع جديد أو نسخ مستودع موجود.
| الأمر | وظيفته |
|---|---|
git init | إنشاء مستودع جديد في المجلد الحالي |
git clone <url> | نسخ مستودع بعيد محليًا |
git clone <url> mydir | الاستنساخ في مجلد مسمّى |
git clone --depth 1 <url> | استنساخ ضحل (الإيداع الأخير فقط) |
git clone -b dev <url> | الاستنساخ والتبديل إلى الفرع dev |
التجهيز والإيداع
تسجيل التغييرات في سجل المشروع.
| الأمر | وظيفته |
|---|---|
git add file.txt | تجهيز ملف واحد |
git add . | تجهيز كل التغييرات في المجلد الحالي |
git add -p | تجهيز أجزاء محدّدة بشكل تفاعلي |
git commit -m "message" | إيداع التغييرات المجهّزة |
git commit -am "message" | تجهيز الملفات المتتبَّعة وإيداعها |
git commit --amend | تعديل آخر إيداع |
git rm file.txt | إزالة ملف وتجهيز الحذف |
التفريع
العمل على التغييرات بمعزل عن غيرها.
| الأمر | وظيفته |
|---|---|
git branch | سرد الفروع المحلية |
git branch feature | إنشاء فرع جديد |
git switch feature | التبديل إلى فرع موجود |
git switch -c feature | الإنشاء والتبديل في خطوة واحدة |
git checkout feature | الطريقة الأقدم لتبديل الفروع |
git branch -d feature | حذف فرع مدموج |
git branch -m newname | إعادة تسمية الفرع الحالي |
الدمج و rebase
دمج العمل من فرعين.
| الأمر | وظيفته |
|---|---|
git merge feature | دمج feature في الفرع الحالي |
git merge --no-ff feature | إنشاء إيداع دمج دائمًا |
git rebase main | إعادة تطبيق إيداعاتك فوق main |
git rebase -i HEAD~3 | تعديل آخر 3 إيداعات بشكل تفاعلي |
git rebase --continue | الاستئناف بعد حل التعارضات |
git rebase --abort | إلغاء عملية rebase جارية |
git cherry-pick <hash> | تطبيق إيداع واحد على هذا الفرع |
المستودعات البعيدة (push و pull و fetch)
مزامنة مستودعك المحلي مع مستودع بعيد مثل GitHub.
| الأمر | وظيفته |
|---|---|
git remote -v | سرد المستودعات البعيدة المهيّأة |
git remote add origin <url> | ربط مستودع بعيد باسم origin |
git fetch | تنزيل التغييرات البعيدة دون دمجها |
git pull | جلب الفرع البعيد ودمجه |
git push | رفع الإيداعات إلى المستودع البعيد |
git push -u origin main | الرفع وتعيين الفرع الأساسي (upstream) |
git push origin --delete feature | حذف فرع بعيد |
الفحص (status و log و diff)
معرفة ما تغيّر وما يجري.
| الأمر | وظيفته |
|---|---|
git status | عرض الملفات المجهّزة وغير المجهّزة وغير المتتبَّعة |
git log | عرض سجل الإيداعات |
git log --oneline --graph | سجل مضغوط مع رسم بياني للفروع |
git diff | التغييرات غير المجهّزة مقابل الفهرس |
git diff --staged | التغييرات المجهّزة مقابل آخر إيداع |
git show <hash> | عرض تغييرات إيداع واحد |
git blame file.txt | عرض من غيّر كل سطر آخر مرة |
التراجع عن التغييرات
التعافي من الأخطاء بأمان.
| الأمر | وظيفته |
|---|---|
git restore file.txt | تجاهل التغييرات غير المجهّزة على ملف |
git restore --staged file.txt | إلغاء تجهيز ملف (مع الإبقاء على التغييرات) |
git reset --soft HEAD~1 | التراجع عن آخر إيداع مع إبقاء التغييرات مجهّزة |
git reset --hard HEAD~1 | التراجع عن آخر إيداع وتجاهل التغييرات |
git revert <hash> | إنشاء إيداع جديد يتراجع عن آخر |
git stash | تنحية التغييرات جانبًا لوقت لاحق |
git stash pop | إعادة تطبيق أحدث تنحية |
كل أمر Git قد تحتاجه، على صفحة واحدة. ورقة Git المرجعية هذه هي مرجع سريع للتحكم اليومي في الإصدارات - إعداد Git، والتجهيز والإيداع، والتفريع، والدمج و rebase، والمزامنة مع المستودعات البعيدة، والتراجع عن الأخطاء.
هذه أوامر Git قياسية تعمل بالطريقة نفسها على Linux و macOS و Windows. انسخ ما تحتاجه، أو جرّبها مباشرة في playground الخاص بالطرفية - صدفة (shell) حقيقية في متصفحك، دون الحاجة إلى تثبيت أي شيء.
الأسئلة الشائعة حول ورقة Git المرجعية
هل ورقة Git المرجعية هذه مجانية؟
ما الفرق بين merge و rebase؟
git merge فرعين عبر إنشاء إيداع دمج جديد يربط سجليهما معًا، مع الحفاظ على السجل الدقيق لكليهما. أمّا git rebase فيُعيد تطبيق إيداعاتك واحدًا تلو الآخر فوق فرع آخر، ما يُنتج سجلًا خطّيًا دون إيداع دمج. الدمج آمن وغير مدمّر؛ بينما يُنتج rebase سجلًا أنظف لكنه يُعيد كتابة الإيداعات، لذا تجنّب إجراء rebase على فروع سحبها آخرون بالفعل.كيف أتراجع عن إيداع في Git؟
git reset --soft HEAD~1 عن آخر إيداع مع إبقاء التغييرات مجهّزة، بينما يتجاهلها git reset --hard HEAD~1 بالكامل. أمّا بالنسبة لإيداع تمت مشاركته بالفعل، فاستخدم git revert <hash> لإنشاء إيداع جديد يعكسه دون إعادة كتابة السجل.