Skip to content

ورقة غش أوامر Git

Git هو نظام تحكم في إصدار موزع مفتوح المصدر يمكنه التعامل بكفاءة وسرعة عالية مع إدارة إصدارات المشاريع من الصغيرة جداً إلى الكبيرة جداً. تم تطوير Git بواسطة Linus Torvalds للمساعدة في إدارة تطوير نواة Linux.

أساسيات Git

git init <directory>

إنشاء مستودع Git فارغ في الدليل المحدد. إذا تم تشغيله بدون معلمات، يتم تهيئة الدليل الحالي كمستودع Git.

git clone <repo>

استنساخ المستودع الموجود في <repo> إلى الجهاز المحلي. يمكن أن يكون المستودع الأصلي موجوداً في نظام الملفات المحلي أو على جهاز بعيد عبر HTTP أو SSH.

git config user.name <name>

تحديد اسم المؤلف لاستخدامه في جميع الالتزامات (commits) في المستودع الحالي.

git add <directory>

إضافة التغييرات في <directory> للالتزام التالي.

git commit -m "<message>"

التزام بلقطة مرحلة التحضير (staging)، باستخدام <message> كرسالة التزام.

git status

سرد الملفات التي تم إضافتها لمرحلة التحضير، والملفات غير المحضرة، وغير المتتبعة.

git log

عرض سجل الالتزام بالكامل باستخدام التنسيق الافتراضي.

git diff

مقارنة الاختلافات بين دليل العمل (لم يتم تشغيل git add له بعد) ومنطقة التحضير (بعد git add).

التراجع عن التغييرات

git revert <commit>

إنشاء التزام جديد يتراجع عن جميع التغييرات التي تم إجراؤها في <commit> وتطبيقها على الفرع الحالي.

git reset <file>

إزالة <file> من منطقة التحضير مع الحفاظ على دليل العمل دون تغيير. هذا يلغي تحضير الملف دون الكتابة فوق أي تغييرات.

git clean -n

إظهار الملفات التي سيتم إزالتها من دليل العمل. استخدم علم -f بدلاً من علم -n لتنفيذ عملية التنظيف.

إعادة كتابة التاريخ

git commit --amend

تعديل أحدث حدث التزام Git. إذا كان دليل العمل يحتوي على تغييرات قابلة للالتزام، فسيتم الالتزام بهذه التغييرات أيضاً عند استخدام أمر git commit –amend.

git rebase <base>

إعادة تعيين الفرع الحالي إلى <base>. يمكن أن يكون <base> معرف التزام، أو اسم فرع، أو علامة (tag)، أو HEAD.

git reflog

عرض سجلات العمليات لجميع الفروع (بما في ذلك سجلات الالتزام المحذوفة وعمليات إعادة التعيين).

فروع Git

git branch

سرد جميع الفروع. أضف معلمة <branch> لإنشاء فرع جديد باسم <branch>.

git checkout -b <branch>

إنشاء فرع جديد باسم <branch> والتبديل إليه. احذف -b للتبديل إلى فرع موجود.

git merge <branch>

دمج الفرع <branch> في الفرع الحالي.

المستودعات عن بعد

git remote add <name> <url>

إضافة مستودع جديد عن بعد. بعد إضافة المستودع، يمكنك استخدام <name> كاختصار لـ <url> في الأوامر الأخرى.

git fetch <remote> <branch>

جلب جميع تحديثات <الفرع> المحدد من المستودع، ولكن لن يتم الدمج مع الفرع المحلي.

git pull <remote>

جلب النسخة البعيدة المحددة للفرع الحالي ودمجها فوراً في النسخة المحلية.

git push <remote> <branch>

دفع الفرع إلى <remote>، مع الالتزامات والكائنات اللازمة. إذا لم يكن المستودع البعيد موجوداً، فسيتم إنشاء فرع باسم المستودع في المستودع البعيد.

git config

git config --global user.name <name>

تحديد اسم المؤلف لجميع التزامات المستخدم الحالي.

git config --global user.email <email>

تحديد البريد الإلكتروني للمؤلف لجميع التزامات المستخدم الحالي.

git config --global alias.<alias-name> <git-command>

إنشاء اختصار (اسم مستعار) لأمر Git.

git config --system core.editor <editor>

تعيين محرر النصوص المستخدم في الأوامر لجميع المستخدمين على الكمبيوتر.

git config --global --edit

فتح ملف التكوين العالمي في محرر نصوص للتحرير اليدوي.

git log

git log -<limit>

عرض آخر <limit> سجل من سجلات الالتزام.

git log --oneline

عرض سجل الالتزام مع ضغط كل التزام في سطر واحد.

git log -p

عرض سجل الالتزام مع عرض الفروقات الكاملة لكل التزام.

git log --stat

عرض سجل الالتزام، بما في ذلك الملفات التي تم تعديلها والعدد النسبي للأسطر المضافة أو المحذوفة من كل ملف.

git log --author="<pattern>"

البحث عن التزامات لمؤلف محدد.

git log --grep="<pattern>"

البحث في سجل الالتزام باستخدام مطابقة التعبيرات العادية.

git log <since>..<until>

عرض الالتزامات التي حدثت بين <since> و <until>.

git log -- <file>

عرض سجلات الالتزام التي تحتوي على الملف المحدد فقط.

git diff

git diff HEAD

مقارنة الاختلافات بين دليل العمل (لم يتم تشغيل git add له بعد) والمستودع (بعد git commit).

git diff --cached

مقارنة الاختلافات بين منطقة التحضير (بعد git add) والمستودع (بعد git commit).

git reset

git reset

إعادة تعيين منطقة التحضير لتتطابق مع أحدث التزام، مع الحفاظ على دليل العمل دون تغيير.

git reset --hard

إعادة تعيين كل من منطقة التحضير ودليل العمل إلى أحدث التزام، والكتابة فوق جميع التغييرات في دليل العمل.

git reset <commit>

تحريك طرف الفرع الحالي للخلف إلى <commit> وإعادة تعيين منطقة التحضير، ولكن دون تغيير دليل العمل.

git reset --hard <commit>

نفس ما سبق، ولكن يعيد تعيين كل من منطقة التحضير ودليل العمل. يحذف التغييرات غير الملتزمة وجميع الالتزامات بعد <commit>.

git pull

git pull --rebase <remote>

جلب النسخة البعيدة للفرع الحالي وإعادة بنائها (rebase) فوق النسخة المحلية. استخدم git rebase بدلاً من merge لدمج الفروع.

git push

git push <remote> --force

دفع قسري (Force push).

git push <remote> --all

دفع جميع الفروع المحلية إلى المستودع البعيد المحدد.

git push <remote> --tags

دفع جميع الوسوم (tags) المحلية إلى المستودع البعيد.