ورقة Git المرجعية
مرجع Git قابل للبحث والطباعة — الإعداد، الفروع، الدمج، إعادة الأساس، المستودعات البعيدة، التخزين المؤقت، الوسوم والتراجع عن التغييرات. مجانًا.
الإعداد والتهيئة
10git config --global user.name "Jane Doe"
تعيين الاسم المرفق بعمليات الـ commit
git config --global user.email "jane@example.com"
تعيين البريد المرفق بعمليات الـ commit
git config --global init.defaultBranch main
جعل المستودعات الجديدة تبدأ على فرع "main"
git config --global core.editor "code --wait"
استخدام VS Code كمحرر Git الافتراضي
git config --global pull.rebase true
إجراء rebase بدل merge عند الـ pull
git config --global alias.co checkout
إنشاء اختصار alias (git co)
git config --global --list
سرد جميع قيم الإعداد العام
git config user.email
طباعة البريد للمستودع الحالي
git config --global color.ui auto
تفعيل الإخراج الملوّن في سطر الأوامر
git help <command>
فتح صفحة الدليل لأمر ما
إنشاء واستنساخ المستودعات
9git init
تهيئة مستودع جديد في المجلد الحالي
git init my-project
إنشاء مستودع جديد في دليل جديد
git clone https://example.com/repo.git
استنساخ مستودع بعيد عبر HTTPS
git clone git@example.com:user/repo.git
استنساخ مستودع بعيد عبر SSH
git clone <url> my-dir
الاستنساخ إلى اسم دليل محدد
git clone --depth 1 <url>
استنساخ سطحي بأحدث commit فقط
git clone --branch dev <url>
الاستنساخ والانتقال إلى فرع محدد
git clone --recurse-submodules <url>
الاستنساخ وتهيئة جميع الوحدات الفرعية
git remote add origin <url>
ربط مستودع بعيد بمستودع محلي قائم
التجهيز والـ commit
11git add file.txt
تجهيز ملف واحد للـ commit التالي
git add .
تجهيز كل التغييرات في الدليل الحالي
git add -A
تجهيز كل التغييرات بما فيها الحذف
git add -p
تجهيز تفاعلي لمقاطع محددة
git commit -m "Add login form"
تثبيت التغييرات المجهّزة برسالة
git commit -am "Fix typo"
تجهيز الملفات المتعقَّبة والـ commit في خطوة واحدة
git commit --amend
تعديل أحدث commit
git commit --amend --no-edit
إضافة التغييرات المجهّزة إلى آخر commit
git rm file.txt
إزالة ملف وتجهيز الحذف
git mv old.txt new.txt
إعادة تسمية أو نقل ملف وتجهيزه
git reset file.txt
إلغاء تجهيز ملف مع إبقاء تغييراته
الفروع
10git branch
سرد جميع الفروع المحلية
git branch -a
سرد الفروع المحلية والمتعقِّبة للبعيد
git switch -c feature/login
إنشاء فرع جديد والانتقال إليه
git switch main
الانتقال إلى فرع قائم
git checkout -b hotfix
الطريقة الكلاسيكية لإنشاء الفروع والتنقل بينها
git branch -m old-name new-name
إعادة تسمية فرع
git branch -d feature/login
حذف فرع محلي مدموج
git branch -D feature/login
حذف قسري لفرع محلي غير مدموج
git push origin --delete feature/login
حذف فرع على البعيد
git switch -
العودة إلى الفرع السابق
الدمج وإعادة الأساس
10git merge feature/login
دمج فرع في الفرع الحالي
git merge --no-ff feature/login
الدمج مع إنشاء merge commit دائماً
git merge --squash feature/login
دمج فرع في تغيير مجهّز واحد
git merge --abort
إلغاء دمج به تعارضات
git rebase main
إعادة تطبيق commits الفرع الحالي على main
git rebase -i HEAD~3
تعديل آخر 3 commits تفاعلياً
git rebase --continue
استئناف rebase بعد حل التعارضات
git rebase --abort
إلغاء rebase جارٍ
git cherry-pick <hash>
تطبيق commit واحد على الفرع الحالي
git mergetool
تشغيل أداة لحل تعارضات الدمج
البعيد والمزامنة
11git remote -v
سرد البعيدات المُهيّأة وعناوينها
git remote add upstream <url>
إضافة بعيد ثانٍ باسم upstream
git remote set-url origin <url>
تغيير عنوان بعيد قائم
git fetch
تنزيل تغييرات البعيد دون دمج
git fetch --all --prune
جلب كل البعيدات وإسقاط الفروع القديمة
git pull
جلب ودمج تغييرات البعيد
git pull --rebase
السحب وإعادة أساس الـ commits المحلية فوقها
git push
رفع الـ commits المحلية إلى البعيد
git push -u origin main
الدفع وتعيين فرع التتبع upstream
git push --force-with-lease
دفع قسري آمن دون طمس عمل الآخرين
git push origin --tags
دفع كل الوسوم المحلية إلى البعيد
الفحص والمقارنة
10git status
عرض الملفات المجهّزة وغير المجهّزة وغير المتعقَّبة
git status -s
عرض الحالة بصيغة قصيرة مدمجة
git diff
عرض التغييرات غير المجهّزة مقابل الفهرس
git diff --staged
عرض التغييرات المجهّزة للـ commit التالي
git diff main..feature
مقارنة فرعين
git diff HEAD~1 HEAD
مقارنة آخر commit بأصله
git show <hash>
عرض تفاصيل وفروق commit واحد
git show HEAD:file.txt
عرض ملف كما كان في commit
git log --stat
عرض الـ commits مع ملخصات الملفات المتغيرة
git shortlog -sn
عدّ الـ commits مجمّعة حسب المؤلف
التراجع عن التغييرات
10git restore file.txt
تجاهل التغييرات غير المجهّزة في ملف
git restore --staged file.txt
إلغاء تجهيز ملف مع إبقاء تغييراته
git restore --source=HEAD~1 file.txt
استعادة ملف من commit سابق
git checkout -- file.txt
الطريقة الكلاسيكية لتجاهل التغييرات المحلية
git reset --soft HEAD~1
التراجع عن آخر commit مع إبقاء التغييرات مجهّزة
git reset --mixed HEAD~1
التراجع عن آخر commit مع إبقاء التغييرات غير مجهّزة
git reset --hard HEAD~1
التراجع عن آخر commit وتجاهل التغييرات
git revert <hash>
إنشاء commit جديد يتراجع عن commit
git clean -fd
حذف الملفات والأدلة غير المتعقَّبة
git clean -nd
معاينة ما سيحذفه clean
الإخفاء (stash)
10git stash
حفظ التغييرات غير المثبّتة وتنظيف الشجرة
git stash push -m "wip"
إخفاء التغييرات برسالة وصفية
git stash -u
الإخفاء مع تضمين الملفات غير المتعقَّبة
git stash list
سرد جميع مجموعات التغييرات المخفية
git stash show -p
عرض فرق أحدث stash
git stash apply
إعادة تطبيق أحدث stash مع الإبقاء عليه
git stash pop
إعادة تطبيق أحدث stash وإسقاطه
git stash apply stash@{2}
إعادة تطبيق stash محدد بالفهرس
git stash drop stash@{0}
حذف مدخل stash واحد
git stash clear
حذف كل مداخل الـ stash
الوسوم
9git tag
سرد جميع الوسوم
git tag v1.0.0
إنشاء وسم خفيف عند HEAD
git tag -a v1.0.0 -m "Release 1.0.0"
إنشاء وسم موسوم برسالة
git tag -a v1.0.0 <hash>
وسم commit سابق محدد
git show v1.0.0
عرض تفاصيل وسم
git push origin v1.0.0
دفع وسم واحد إلى البعيد
git push origin --tags
دفع كل الوسوم المحلية إلى البعيد
git tag -d v1.0.0
حذف وسم محلياً
git push origin --delete v1.0.0
حذف وسم على البعيد
السجلات والتاريخ
12git log
عرض تاريخ الـ commit الكامل
git log --oneline
عرض سجل مدمج بسطر واحد لكل commit
git log --oneline --graph --all
تمثيل الفروع كرسم ASCII
git log -p
عرض تاريخ الـ commit مع الفروق
git log --author="Jane"
تصفية التاريخ حسب المؤلف
git log --since="2 weeks ago"
تصفية التاريخ حسب نطاق زمني
git log --pretty=format:"%h %an %s"
تخصيص صيغة إخراج السجل
git blame file.txt
عرض من غيّر كل سطر آخر مرة
git reflog
عرض تاريخ مواضع HEAD
git bisect start
بدء بحث ثنائي عن commit معطوب
git bisect good <hash>
وسم commit كسليم أثناء bisect
git bisect bad
وسم الـ commit الحالي كمعطوب
لا يوجد إدخال يطابق “:q”.
هل تحتاج إلى مساعدة؟
هل واجهت مشكلة في هذه الأداة؟ أخبر فريقنا.