32 ورقة الغش لأوامر Git للمبتدئين
نشرت: 2022-09-23تعد ورقة الغش الخاصة بأوامر GIT مرجعًا مفيدًا للمطورين وتحتوي على الأوامر الأكثر استخدامًا لمشاريع git.
ما هو الجهاز الهضمي؟
GIT هو مستودع مفتوح المصدر حيث يمكن للمستخدمين وضع ملفاتهم ، بما في ذلك الكود أو الرمز البريدي أو النص أو المشروع بأكمله.
يحتوي على العديد من الميزات ، مثل التعاون والتحكم في الإصدار والتحكم في العمليات وما إلى ذلك. يقوم GIT بتخزين الملفات بشكل أكثر كفاءة ويوفر سلامة أفضل من أنظمة التحكم في الإصدار الأخرى. Git هي أداة سطر أوامر.
ما هو جيثب؟
بفضل واجهة المستخدم الأنيقة ، أصبح GitHub ، وهو مركز للمطورين ، أكثر أنظمة التحكم في الإصدارات استخدامًا ويمكن لأي شخص الوصول إليه في أي مكان.
سير عمل Git
لدى Git تدفقات عمل مختلفة ، ويجب أن يكون لكل مشروع واحد بناءً على متطلباته. إن سير عمل Git ليس سوى سير عمل بسيط يعتمد على الفروع يساعد الفرق التي تنشر المشاريع بانتظام.
على سبيل المثال ، يُنشئ سير عمل Git المتفرّع نسخة محلية من المستودع. لذلك ، كل مطور لديه مساحة عمل محلية ومستودع مركزي. يكون هذا النوع من سير العمل جيدًا عندما يشارك عدة مطورين ويسمح للمطورين بالتعاون في النسخة المتشعبة قبل إجراء تغييرات على المستودع الرئيسي.
لماذا نحتاج Git؟
نظرًا لأن Git هو نظام للتحكم في الإصدارات ، يعمل المطورون عليه باستمرار لحفظ تغييراتهم ، وجعلها قابلة للعرض للآخرين ، ودمج تغييراتهم مع الآخرين ، وأكثر من ذلك بكثير.
لأية تغييرات في مستودع Git ، يحتاج المطورون إلى معرفة الأوامر الصحيحة للإجراء الصحيح. فيما يلي قائمة بأوامر Git المهمة والشائعة الاستخدام:
أوامر Git المشتركة
بوابة إضافة
لإضافة الملف (الملفات) المحدد إلى التدريج
git add <file> -- add a specific file git add * -- add all the files
أرشيف git
ينشئ أرشيفات للالتزامات والفروع والأشجار ويجمع عدة ملفات في ملف واحد. يمكنك استرداد المحتويات عن طريق استخراج الملفات عند الحاجة
git archive HEAD
- إنشاء أرشيف من المرجع الرئيسي للريبو
git archive output = '.tar'
- تخزين الملفات المؤرشفة في الموقع المحدد
git archive --format=tar.gz
- يحدد تنسيق الملف المؤرشف ، مثل tar و zip و tar.gz
فرع بوابة
يسرد جميع الفروع في المستودع. سيتم إنشاء فرع جديد بالاسم إذا تم تحديد فرع. لحذف فرع ، استخدم الخيار -d مع اسم الفرع. لإعادة تسمية فرع حالي ، استخدم -m.
git branch
- يسرد جميع الفروع
git branch <branch_name
> - يُنشئ فرعًا جديدًا باسم 'Branch_name' ولكن لا يقوم بسحب الفرع الجديد.
git branch -d <branch_name>
- يحذف الفرع ويمنع الحذف في حالة وجود أي تغييرات غير مدمجة
git branch -D <branch_name>
- فرض حذف الفرع حتى في حالة وجود تغييرات غير مدمجة
git branch -m <branch2>
- أعد تسمية الفرع الحالي
git cat-file
عرض المحتوى أو حجم / نوع معلومات كائنات المستودع
git cat-file <object>
- يعرض محتوى الكائن
git cat-file -t <object>
- يعرض نوع الكائن
git cat-file -s <object>
- يظهر حجم الكائن
git cat-file -p <object>
- اطبع نوع الكائن بطريقة رائعة
git cat-file -e <object>
- يُظهر الخطأ على stderr إذا كان الكائن بتنسيق غير صالح أو غير موجود
git cat-file <type> <object>
- يعرض المحتويات الأولية لكائن ما
بوابة الخروج
للتبديل بين الفروع المختلفة للمستودع ، استخدمه بعناية ، حيث لا يوجد "تراجع" عنه.
git checkout <branch_name>
- يتحقق من الفرع المحدد
git checkout -b <branch_name>
- أنشئ فرعًا جديدًا وانتقل إلى هذا الفرع
فمثلا:
C:\Users\geekflare>git checkout -b development_branch Switched to a new branch 'development_branch'
بوابة نظيفة
تنظيف مدير العمل. لن يتم إزالة الملفات التي تم الالتزام بها
git clean -n
- يسرد الملفات التي ستتم إزالتها
git clean -f
- يزيل الملفات
استنساخ بوابة
قم بإنشاء نسخة من الريبو الموجود في دليل جديد. من المفيد الحصول على نسخة مطورة من الريبو المركزي.
git clone <central_repo> <new_dir>
- إنشاء نسخة من الريبو المركزي في دليل جديد
فمثلا:
C:\Users\geek>git clone geekflare master Cloning into 'master'… done.
git clone -branch <branch> <repo>
- يستنسخ فرعًا من المستودع المذكور
بوابة الالتزام
يحفظ التغييرات في بيئة التدريج بحيث يمكن للآخرين رؤيتها.
git commit
- الالتزام بالتغييرات في التدريج
git commit -m <useful_msg>
- يعطي رسالة عند الالتزام لتسليط الضوء على التغييرات التي تم إجراؤها
git commit -a
- تنفيذ التغييرات مباشرة ، دون التدريج
لنفترض أنك أضفت ملفًا باسم samplefile.txt إلى دليل العمل وتريد تثبيت الملف. عند إعطاء الأمر أعلاه ، ستحصل على الإخراج:
Please enter the commit message for your changes. Lines starting with '#' will be ignored, and an empty message aborts the commit. On branch master Initial commit Changes to be committed: new file: samplefile.txt
بمجرد إرسال الرسالة ، يتم تنفيذ التغييرات:
C:\Users\geekflare>git commit -m 'samplemsg' [integration_branch (root-commit) ed52dd0] 'samplemsg' 1 files changed, 24 insertions(+) create mode 100644 samplefile.txt
git config
يحدد مستوى التكوين لكتابة قيمة خاصية فيه. المستوى "المحلي" هو المستوى الافتراضي (عندما لا يتم تحديد أي شيء).
git config –local
- يحفظ التكوين في دليل .git من الريبو
git config –global
- يحفظ التكوين في الدليل الرئيسي للمستخدم
git config –system
- يحتوي على إعدادات جميع المستخدمين والمستودعات ويقع في ملف git config الخاص بالجذر.
بوابة فرق
قارن التغييرات في git repo ، والتي يمكن إجراؤها قبل التدريج ، وعند التدريج ، وبعد التدريج (الالتزام).
git diff
- تتبع تغييرات الريبو التي لم يتم تنظيمها بعد
git diff --staged
- تتبع تغييرات الملفات المرحلية (التي لم يتم الالتزام بها)
git diff HEAD
- تتبع تغييرات الملف بعد الالتزام
git diff <commit1_id> <commit2_id>
- تتبع التغييرات بين التزامين ؛ يمكنك معرفة الالتزام باستخدام " git log -p --follow --filename
"
جلب بوابة
إحضار فرع أو مستودع بعيد كامل
git fetch <remote-url>
- احصل على المستودع بالكامل من عنوان URL للمستودع البعيد
git fetch <branch_url> <branchname>
- أحضر الفرع المحدد
git fetch -all
- أحضر جميع فروع الريبو البعيد
git fetch origin
- تحديث ومزامنة الريبو المحلي مع التغييرات الجديدة في الريبو البعيد
بوابة fsck
يتحقق الأمر F ile S ystem C hec K من صلاحية وتوصيل كائنات قاعدة البيانات. يتحقق من SHA-1ID للكائنات والتوصيلات التي تجريها. Fsck مفيد لاستعادة الالتزامات والملفات المفقودة.
git fsck –full
بوابة gc
يقوم بتشغيل مجموعة البيانات المهملة في المستودع الحالي وتنظيف الملفات غير المستخدمة.
git gc
بوابة grep
يبحث عن محتوى معين في المستودع. يوفر Git العديد من الخيارات للبحث بطرق مختلفة
git grep -i 'search_term'
- البحث بتجاهل الحالة [الرجل والرجل سيكونان نفس الشيء]
git grep -f <file_name>
- إظهار الأنماط المطابقة لملف معين
git grep -e 'search-term'
- استخدم -e لمطابقة الأنماط
git grep -E 'regexp|multiple_exp'
–البحث عن التعبيرات العادية ، يمكننا البحث في عدة تعابير باستخدام عامل التشغيل الأنبوب (OR)
git grep -n 'expr'
- رقم سطر البادئة للخط المطابق
git grep -c 'expr'
- إظهار عدد الأسطر المطابقة بدلاً من كل سطر
بوابة ls-tree
لسرد محتويات كائن الشجرة من الدليل الحالي.
git ls -tree -d <path>
- إظهار إدخال الشجرة المحدد فقط ، وليس العناصر الفرعية
git ls -tree -r
- يتكرر في الأشجار الفرعية
git ls -tree -l
- إظهار حجم كائنات الملف (blob)
git ls -tree --name-only
- تعرض أسماء الملفات فقط وليس المخرجات الطويلة
git ls -tree --full-name
- إظهار أسماء المسار الكامل وليس فقط المسار المتعلق بالدليل الحالي
مثال:
C:\Users\geek>git ls-tree --full-tree -r HEAD 100644 blob e883e60087e84f1660a9673ccb86eb0adc4f004d samplefile.txt 100644 blob 1426dc6fbff0677a484b248983a8740ff30fbb80 sample_jsindex.js
بوابة الحرف الأول
قم بإنشاء مستودع فارغ جديد. إنه أول أمر تنفذه لإنشاء مشروع git.

git init
- إنشاء مستودع .git في دليل العمل ،
على سبيل المثال ، لإنشاء ريبو جديد يسمى "geekflare" ، أعط الأمر على النحو التالي:
$ git init geekflare Initialized empty Git repository in C:/Users/geek/geekflare/.git/
بوابة instaweb
واجهة المستخدم لتصفح مستودع git من خلال متصفح. يستخدم البرنامج النصي CGI GitWeb لنفسه.
git instaweb --httpd=webrick
- يبدأ الخادم (httpd) ويفتح متصفح الويب على الصفحة.
لإيقاف الخادم ، استخدم الأمر أعلاه مع الخيار –stop.
سجل بوابة
يسجل كل نشاط في مستودع git.
git log
- يعرض الالتزامات القليلة الماضية
git log --oneline
- يُظهر الإخراج كأول 7 أحرف من SHA ورسالة التنفيذ مع التزام واحد في كل سطر
git log stat
- يعرض المزيد من المعلومات حول الملفات المعدلة ، مثل عدد الأسطر المضافة / المحذوفة ، وملخص لإجمالي السجلات التي تم تغييرها ، والأسطر المضافة / المحذوفة
git log --patch (or -p)
- يعرض الملفات المعدلة والتغييرات المحددة وموقعها
git log --graph
- عرض نتائج السجل في شكل رسم بياني
git log -<n>
- عرض آخر عدد من عمليات التنفيذ
git log --after=<date/x days/yesterday>
- عرض جميع الالتزامات بعد تاريخ محدد. يمكنك استخدام --before
عرض الالتزامات قبل التاريخ المحدد
git log --author=<author_name>
- عرض التزامات مؤلف معين (مستخدم).
git log --grep=<commit message>
- إجراء التصفية بناءً على رسالة التنفيذ
دمج بوابة
يدمج جميع ملفات التطوير في فرع واحد ، ويجمع بين فرعين ، ويدمج التزامات متعددة في تاريخ واحد. يتوقف الدمج في حالة وجود تعارض ، ويقدم git ملفات التعارض. بمجرد حل التعارضات ، يستمر الدمج.
git checkout -b
- أولاً ، قم بتسجيل الخروج من الفرع للدمج
git add <file>
git commit
- إضافة الملفات وتنفيذها
git checkout master
git merge
- ادمج الفرع مع الرئيسي
git prune
يحذف (Prunes) الملفات التي لا يمكن الوصول إليها من الفرع الحالي. إنها عملية تنظيف لإزالة الملفات غير المستخدمة من الفرع
git prune -n
- لا تشذب ، فقط أظهر كل ما يمكن تقليمه
git prune -v
- يُظهر ناتج الإجراءات التي يقوم بها الخوخ
git prune --progress
- التقدم - يُظهر تقدم الخوخ
git fetch --prune
- برقوق جميع الفروع التي عفا عليها الزمن
بوابة السحب
يتلقى البيانات من خادم بعيد إلى مستودع عامل. يقوم بتحديث الفرع المحلي (العامل) بجميع أحدث الملفات من الريبو البعيد.
git pull
- سحب الريبو عن بعد
git pull <repo URL>
- سحب فرع بعيد معين
دفع بوابة
يدفع جميع التغييرات المحلية إلى المستودع البعيد. إنها عملية تحميل معاكسة تمامًا لأوامر السحب والجلب
git checkout master
- تحقق من الفرع الذي يحتوي على أحدث التغييرات
git push origin master
- ادفع التغييرات إلى الريبو البعيد
مثال:
C:\Users\geek>git checkout development_branch Switched to branch 'development_branch' C:\Users\geek>git push master development_branch Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 612 bytes | 204.00 KiB/s, done. Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 To master [development_branch] development_branch -> development_branch
يمكننا أيضًا استخدام الضغط لحذف فرع بعيد باستخدام الأمر git push --delete <branch>
.
فمثلا:
C:\Users\geek>git push master --delete development_branch To master [deleted] development_branch
git rebase
يجمع بين ارتباطات متعددة من فروع مختلفة لإنشاء التزام أساسي نهائي جديد. مفيد قبل دمج جميع التغييرات ، لإجراء تغييرات من مختلف الفروع واحدًا تلو الآخر (خطيًا).
git rebase <branch name>
- اجمع الالتزامات في قاعدة نهائية واحدة
في حالة وجود أي تعارضات ، قم بحلها ومتابعة تغيير العنوان:
git rebase --continue
لتخطي أي تغيير:
git rebase --skip
بوابة البعيد
يتحقق من تكوين الخادم البعيد ويسمح بوصول الاتصال بين البعيد والمحلي.
git remote
- بشكل افتراضي ، تقوم بإرجاع "origin" ، الاسم الافتراضي للخادم البعيد الذي قدمه Git
git remote -v
- يسرد الأسماء القصيرة وعناوين URL لجميع الاتصالات البعيدة المتاحة
git remote add <short name> <remote url>
- أضف الخادم البعيد بوضوح إلى الاتصالات المتاحة. يمكن استخدام الاسم المختصر لأوامر git بدلاً من إعطاء عنوان URL بالكامل.
git remote remove <remote url/short name>
- يزيل الخادم البعيد من المستودع
إعادة تعيين بوابة
ارجع إلى الالتزام السابق ، وتجاهل التغييرات التي تم إجراؤها بعد ذلك الالتزام
git reset <hash of the commit>
- يعيد الريبو إلى الالتزام المحدد. سيحتفظ Git بسجل الالتزام ، بحيث يمكنك إجراء إعادة تعيين أخرى باستخدام التزام (تجزئة) مختلف للتراجع عن إعادة التعيين.
بوابة rm
يزيل الملف المحدد من git. يمكنك التراجع عن تأثير rm باستخدام أمر إعادة التعيين أو الخروج
git rm <file_ name>
- إزالة الملف المحدد
لإزالة الملفات من git مع الاحتفاظ بها في منطقتك (التدريج) ، استخدم:
git rm --cached
عرض بوابة
اعرض أي كائن مثل blob أو tree أو الالتزام أو العلامة عن طريق تحديد SHA1 الخاص به
git show
- عدم تحديد <object> يعرض تفاصيل آخر تنفيذ على الفرع.
git show <SHA1_id>
- يعرض محتوى الكائن المحدد بواسطة معرف SHA1 الخاص به ، على سبيل المثال ، معرف blob ، معرف الشجرة ، إلخ. للتحقق من نوع الكائن ، استخدم الأمر git cat-file -t
git show –pretty
- الإخراج بتنسيق جميل.
يمكنك توفير تنسيق مخصص:
git show --pretty = 'format:Name: <format>'
أو يمكنك استخدام أحد التنسيقات القصيرة أو الكاملة أو ذات السطر الواحد أو المتوسطة أو الكاملة ، على سبيل المثال:
git show --pretty= 'medium'
- سيعرض هذا المؤلف والتاريخ والعنوان ورسالة الالتزام الكاملة
git show --abbrev-commit
- لاختصار SHA1
بوابة المخبأ
لتبديل الفروع دون الالتزام في الفرع الحالي ، قم بتخزين البيانات غير الملتزمة بأمان
git stash
- يحفظ حالة العمل والفهرس
git stash save <message>
- أعط رسالة أثناء الحفظ
git stash list
- عرض قائمة المحتوى المخبأ
git stash apply
- تنفيذ التغييرات المخبأة. لتطبيق التغييرات على مخبأ معين ، استخدم معرف فهرس stash مع تطبيق
git stash show
- عرض محتويات الملفات المخبأة
git stash drop
- يزيل أحدث مخبأ من قائمة الانتظار
حالة بوابة
عرض حالة المستودع والتشغيل المرحلي ، أي الحالة قبل مرحلة الالتزام. يمكنك استخدام هذا الأمر بعد أي أمر git آخر ، مثل إضافة ملف أو تحديثه أو إزالته
git status
- تُظهر التغييرات التي سيتم الالتزام بها أو التغييرات التي لم يتم تتبعها (بدون مراحل)
على سبيل المثال ، إذا قمت بإضافة ملف في دليل العمل الخاص بك باسم samplefile.txt وتحقق مما إذا كان قد تمت إضافته ، فيمكنك إعطاء الأمر أعلاه. سوف ينتج عنه الإخراج على النحو التالي:
On branch master No commits yet Changes to be committed: (use "git rm --cached …" to unstage) new file: samplefile.txt
علامة بوابة
تُستخدم المراجع الودية للإشارة إلى المعالم أو النقاط المرجعية في الكود
git tag <tag_name>
- أنشئ علامة بالاسم المحدد
git tag
- سرد جميع العلامات المتاحة
git tag show <tag_name>
- إظهار تفاصيل العلامة المحددة
git tag -l “.*”
- إظهار العلامات التي تطابق النمط أو الأحرف المحددة
gitk
يقوم بتشغيل واجهة مستخدم git التي تعرض المحتويات والالتزامات والفرق الكاملة والتفاصيل الأخرى في النافذة
gitk
- افتح git repo في نافذة للتخيل
نسخة بوابة
استخدم الأمر git version للتحقق من إصدار git الذي تستخدمه.
C:\Users\geekflare>git version git version 2.38.0.windows.1
الكلمات الأخيرة
أدرج هذا المنشور أوامر git الأكثر استخدامًا مع خياراتها.
بعد ذلك ، يمكنك التحقق من ماسح بيانات اعتماد GitHub.