Skip to content

Latest commit

 

History

History
704 lines (474 loc) · 12 KB

git-cheat-sheet-ar.md

File metadata and controls

704 lines (474 loc) · 12 KB

Git and Git Flow Cheat Sheet Awesome


Git


الفهرس

الإنشاء

لإنشـاء مسـتودع فـارغ:
$ git init 

التعديلات المحلية

لإضافة ملف:
$ git add <file_name>

مثال على ذلك:

$ git add home.php
$ git add contact.php
$ git add admin.php
لإضافة العديد من الملفات:
$ git add .
للتخزيـن الفعـلي للتعديـلات و حفظها:
$ git commit -m 'reason here..'
للتراجـع عـن العمليـات و التعديـلات التـي تقـوم بهـا:
$ git commit --amend

مثال يوضح كيفية إضافة ملف بعد عمل commit:

$ git commit -m 'initial commit'
$ git add file.cpp
$ git commit --amend
لعرض تفاصيل عن حالة الملفات:
$ git status
للحصول على تقرير مختصر عن حالة الملفات:
$ git status --short
للحصول على تقرير مختصر حول حالة المشروع والتعديلات الحالية:
$ git status -s
إلغاء كل التعديلات والعودة للنسخة التي كنت عليها قبل البدء في التعديل:
$ git checkout -- <file_name>

مثال على ذلك:

$ git checkout -- file.java
لحفظ حالة التفرع على ما هي عليه حتى تعود إليها مرة أخرى وتكمل العمل دون أن تحفظ أي Commit:
$ git stash
لمعرفـة قائمة الحـالات التـي قمـت بتخزينهـا لكي تسـاعدك في الرجـوع للحالـة التي تريدها:
$ git stash list
لعرض قائمة بالحالات التي قمت بتخزينها من قبل وبإمكانك الرجوع لأي منها، أي عمل Reapply:
$ git stash apply
للعـودة لأحـد الحـالات المخزنـة مسـبقاً، فبإمكانـك اسـتخدام الاسـم الـذي يظهـر مـع تلـك الحالـة عنـد القيـام بتنفيـذ الأمـر:
$ git stash apply stash@{2}

المؤشر

لعرض قائمة Tags:
$ git tag
للبحث عن Tags:
$ git tag -l <صيغة معينة>

مثال على ذلك:

$ git tag -l "v1.7*"
لإنشاء Annotated Tag:
$ git tag -a v1.8.0 -m 'version 1.8'
# 💡للتوضيح Tag name is: v1.8.0, After -m you just write a message that will be saved with the tag.
لإنشاء Lightweight Tag:
$ git tag v1.8.0 
لرؤية تفاصيل أكثر عن Tag:
$ git show v1.8.0 

للتراجع

للتراجع ولجعل الملف بحالة Unstage:
$ git reset HEAD <file_name>

مثال على ذلك:

$ git reset HEAD myCode.c

للحذف

لحذف ملف وإلغاء متابعته:
$ git rm <file_name>
$ git commit -m 'reason here..'

مثال على ذلك:

$ git rm myFile.py
$ git commit -m 'Delete myFile.py 🐍'

مثال يوضح كيفية حذف جميع ملفات txt in settings folder:

$ git rm settings/\*.txt
$ git commit -m 'Delete all .txt files in settings folder'
لحذف المتابعة مع بقاء الملف نفسه:
$ git rm --cached <file_name>

مثال على ذلك:

$ git rm --cached myFile.py

لنقل الملفات

لنقل الملف من مجلد إلى مجلد:
$ git mv <source> <destination>

مثال يوضح نقل base.rb ➡️ lib folder:

$ git mv base.rb lib/base.rb
ويمكنك إستخدام الأمر لإعادة تسميه ملف:
$ git mv <old_file_name> <new_file_name>

مثال على ذلك:

$ git mv core.java base.java

التفاصيل التاريخية

لرؤية التفاصيل السابقة للمستودع الذي تعمل عليه:
$ git log
لرؤية التفاصيل السابقة للمستودع الذي تعمل عليه ولتحديد عدد commits:
$ git log -n    # 💡للتوضيح: n هو مجرد عدد

مثال على ذلك:

$ git log -2
لمعرفة تفاصيل أكثر عن commits:
$ git log -p
لرؤية عدد من الإحصائيات بشكل مختصر:
$ git log -stat
لعرض المعلومات بطريقة مبسطة وبسطر واحد:
$ git log --pretty=oneline
لتحديـد طريقـة العـرض التـي تريدهـا و المعلومـات التـي تريـد وضعهـا:
$ git log --pretty=format:<طريقة العرض التي تريدها>

مثال على ذلك:

$ git log --pretty=format:"%h - %an, %ar"

شرح لبعض أهم الرموز المتاحة:

الرمز معناه
%H هو الرقم الذي يأتي مع commit hash 🔖 commit
%h نفس السابق ولكن يعرض بطريقة مختصرة أي عدد محدد من الأرقام
%an من قام بعمل التعديلات Author Name 🙋🏻
%ae بريد من قام بالتعديلات Author Email 📧
%ar تاريخ إضافة التعديلات Author Date 📆
%s الرسالة أو النص الذي يوضح سبب التعديلات
لتحديـد المخرجـات زمنيـًا:
$ git log --since=<المدة الزمنية التي تريدها>

مثال يوضح المدة الزمنية قبل أسبوعين:

$ git log --since=2.weeks
الـ commits التي في تعديلاتها نص معين:
$ git log -S <النص الذي تريده>

مثال يوضح البحث عن myFunction:

$ git log -S myFunction

أهـم (وليـس كل) الخيـارات التـي تسـاعدك عـلى تحديـد المخرجـات وفـق المعايـر التـي تريدهـا:

الرمز معناه
-n عرض عدد محدد من المخرجات
--since, --after التعديلات بعد تاريخ معين
--until, --before التعديلات قبل تاريخ معين
--author جلب المخرجات التي تطابق المؤلف

مستودع الشفيرة

لإضافة Remote Repository:
$ git remote add [remote_name] [remote_URL]

مثال على ذلك:

$ git remote add calc https://github.com/algorithmers/calc
لمعرفـة المسـتودعات التـي نتعامـل معهـا عن بعد:
$ git remote -v
للحصـول عـلى قائمة بالأسماء المسـتعارة أو المـؤشرات التـي تشير لتلـك المسـتودعات بـدون التفاصيـل الأخـرى التـي ترافقهـا:
$ git remote 
لنسـخ مسـتودع شـيفرة وجلبـه إلى Working Directory:
$ git clone [repository_URL]

مثال على ذلك:

$ git clone https://github.com/algorithmers/my.git
تحديـد اسـم خـاص بالمجلـد إذا لم تكـن تريـد الإسم الإفـتراضي:
$ git clone [repository_URL] [new-name]

مثال على ذلك:

$ git clone https://github.com/algorithmers/my.git proj
لجلـب البيانـات الموجـودة في Remote Repository:
$ git fetch [remote-name]

مثال على ذلك:

$ git fetch origin
رفـع البيانـات أو التعديـلات الجديـدة التـي قـام بهـا المطـور إلى مسـتودع الشـيفرة الموجـود عـلى السيرفر:
$ git push [remote-name] [branch-name]

مثال على ذلك:

$ git push origin master
لمعرفـة تفاصيـل أكثر حـول Remote Repository:
$ git remote show [remote-name]

مثال على ذلك:

$ git remote show origin
لإعادة تسمية الإسم المختـصر الـذي قمـت بإضافتـه لمسـتودع شـيفرة موجـود عـلى Server:
$ git remote rename [old-remote-name] [new-remote-name]

مثال على ذلك:

$ git remote rename dev devrepo
لحذف المستودع:
$ git remote rm [remote-name]

مثال على ذلك:

$ git remote rm devrepo

للإختصارات والأسماء مسـتعارة

لوضـع أسماء مسـتعارة أو مختـصرة لأوامـر كاملـة أو إختصـار لجـزء معين من الأمر:
$ git config --global alias.<الأمر الذي تود إختصاره> <الإختصار الذي تريده>

مثال على ذلك:

$ git config --global alias.st status

للتنظيف

لتنظيـف و إزالـة الملفـات أو المجلـدات الزائـدة أو التـي لا تحتـاج إليهـا:
$ git clean -f -d
لتنظيـف و إزالـة الملفـات أو المجلـدات الزائـدة مع تزويدك بصـورة عـن مـا سـيتم حذفـه فعليـاً قبـل حذفـه بشـكل فعـلي:
$ git clean -n -d
لحـذف الملفـات والمجلـدات الموجـودة أيضـاً في .gitigonre:
$ git clean -f -d -x
للتحقق مما سيتم حذفه قبل حذفه بشكل فعلي:
$ git clean -n -d -x
للتنظيف والحذف من خلال الأسلوب التفاعلي:
$ git clean -x -i