ورقة مرجعية لأوامر Git

اعثر بسرعة على أمر Git بكلمة مفتاحية (branch وcommit وrebase وstash...)، مصنفًا بحسب الفئة، مع زر لنسخ كل أمر مباشرة إلى الطرفية.

بدء

git init
يهيّئ مستودع Git جديدًا في المجلد الحالي.
git clone <url>
ينسخ مستودعًا بعيدًا إلى مجلد محلي جديد.
git config --global user.name "Nom"
يحدّد اسم المؤلف العام لعمليات commit.
git config --global user.email "email"
يحدّد البريد الإلكتروني العام للمؤلف في عمليات commit.

الحالة والسجل

git status
يعرض الملفات المعدَّلة أو المضافة أو غير المتتبَّعة.
git log
يعرض سجل عمليات commit.
git log --oneline --graph --all
سجل مختصر مع رسم بياني للفروع.
git diff
يعرض التعديلات غير المضافة إلى منطقة الإعداد.
git diff --staged
يعرض التعديلات المضافة بالفعل إلى منطقة الإعداد (staged).
git show <commit>
يعرض تفاصيل commit محدد.

تعديل

git add <fichier>
يضيف ملفًا إلى منطقة الإعداد (staging).
git add -A
يضيف جميع الملفات المعدَّلة والمضافة والمحذوفة.
git commit -m "message"
ينشئ commit بالملفات المضافة إلى منطقة الإعداد.
git commit --amend
يعدّل آخر commit (الرسالة و/أو المحتوى).
git restore <fichier>
يتراجع عن التعديلات غير المضافة إلى منطقة الإعداد في ملف.
git restore --staged <fichier>
يزيل ملفًا من منطقة الإعداد (staging) دون فقدان التعديلات.
git rm <fichier>
يحذف ملفًا ويضيف عملية الحذف إلى منطقة الإعداد.

الفروع

git branch
يعرض الفروع المحلية.
git branch <nom>
ينشئ فرعًا جديدًا.
git switch <branche>
يبدّل الفرع النشط.
git switch -c <branche>
ينشئ فرعًا وينتقل إليه فورًا.
git branch -d <branche>
يحذف فرعًا محليًا سبق دمجه.
git branch -D <branche>
يحذف فرعًا محليًا بالقوة، حتى لو لم يُدمج.

الدمج وإعادة التأسيس (rebase)

git merge <branche>
يدمج فرعًا في الفرع الحالي.
git rebase <branche>
يعيد تطبيق commits الفرع الحالي على أساس آخر.
git rebase -i HEAD~n
إعادة تأسيس تفاعلية لآخر n من commits (إعادة ترتيب، دمج squash...).
git cherry-pick <commit>
يطبّق commit محددًا على الفرع الحالي.

بعيد

git remote -v
يعرض المستودعات البعيدة المهيَّأة.
git fetch
يجلب المراجع البعيدة دون دمجها.
git pull
يجلب التغييرات البعيدة ويدمجها.
git push
يرسل commits المحلية إلى المستودع البعيد.
git push -u origin <branche>
يرسل فرعًا ويربطه كفرع متتبَّع.
git push --force-with-lease
يفرض الإرسال بطريقة أكثر أمانًا من --force التقليدي.

إلغاء

git reset --soft HEAD~1
يتراجع عن آخر commit مع إبقاء التغييرات في منطقة الإعداد.
git reset --mixed HEAD~1
يتراجع عن آخر commit مع إبقاء التغييرات خارج منطقة الإعداد.
git reset --hard HEAD~1
يتراجع عن آخر commit ويفقد تغييراته نهائيًا.
git revert <commit>
ينشئ commit جديدًا يلغي أثر commit سابق.

الحفظ المؤقت (stash)

git stash
يضع التعديلات الجارية جانبًا مؤقتًا.
git stash pop
يعيد تطبيق آخر stash ويزيله من القائمة.
git stash list
يعرض قائمة stash المحفوظة.

الوسوم

git tag
يعرض الوسوم (tags) الموجودة.
git tag -a v1.0.0 -m "message"
ينشئ وسمًا (tag) مشروحًا.
git push origin --tags
يرسل جميع الوسوم المحلية إلى المستودع البعيد.

كيف يعمل

نحو أربعين أمرًا شائعًا من أوامر Git مصنفة بحسب الفئة (البدء، الحالة والسجل، الفروع، الدمج وإعادة التأسيس، المستودع البعيد، التراجع، stash، الوسوم). اكتب كلمة مفتاحية في شريط البحث — اسم أمر (rebase) أو مفهومًا («تراجع»، «دمج») أو فئة — لتصفية القائمة مباشرة، ثم انقر على «نسخ» بجانب الأمر المطلوب للصقه مباشرة في الطرفية.

ما الفرق بين git fetch وgit pull؟

يُنزّل git fetch المراجع الجديدة من المستودع البعيد دون تعديل فرعك المحلي، فيمنحك وقتًا لفحص التغييرات قبل دمجها. أما git pull فيفعل الشيء نفسه ثم يدمج هذه التغييرات تلقائيًا (أو يعيد التأسيس، بحسب الإعداد) في فرعك الحالي.

متى أستخدم git reset بدلًا من git revert؟

استخدم git reset لإعادة كتابة سجل فرع لم تتم مشاركته بعد (أو بحذر وبالتنسيق مع الفريق)، واستخدم git revert للتراجع بشكل سليم عن commit سبق إرساله وربما استخدمه آخرون، لأنه يضيف commit تراجع جديدًا دون إعادة كتابة السجل الموجود.

هذه الورقة المرجعية ثابتة بالكامل وتعمل دون اتصال بمجرد تحميل الصفحة: لا تُرسَل أي بيانات إلى خادم، بما في ذلك بحثك.