"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل تعرف حقا جيت؟

هل تعرف حقا جيت؟

تم النشر بتاريخ 2024-11-07
تصفح:869

Do you really know Git?

الصور الموجودة في هذه المدونة مأخوذة من "Pro Git" بقلم سكوت تشاكون، بن ستروب

في هذه المدونة، ستتمكن من القراءة عن جميع أنواع الحقائق الرائعة حول بعض الميزات اليومية داخل Git التي تستخدمها في البرمجة!

من السهل على المطورين استخدام الأدوات بشكل أعمى وعدم معرفة كيفية عملها تحت الغطاء. في حين أن هذه التجريدات هي للأفضل، فإن معرفة كيفية عمل الأشياء يمكن أن تكون في بعض الأحيان هي ما يصنع الفرق بين المبرمج المتمرس والهاوٍ.

دعونا نتعمق في بعض الحقائق الرائعة!


1 - الحالة القصيرة

إذا كنت قد استخدمت Git لفترة طويلة، فيجب أن تعرف المزيد عن حالة git. ومع ذلك، هل تعلم أن هناك خيارًا للحصول على مخرجات حالة أكثر قابلية للقراءة وأدنى حد؟

باستخدام علامة الحالة القصيرة، -s، تحصل على تنسيق أكثر إحكاما.

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

ستلاحظ وجود عمودين في القسم الأيسر من الإخراج. يمثل العمود الأيسر حالة منطقة التدريج، بينما يمثل العمود الأيمن حالة شجرة العمل. يتم تمثيل ترتيب الإجراءات ترتيبًا زمنيًا من اليسار إلى اليمين أيضًا.

دعونا نفسر الناتج أعلاه:

  • "M" - تم تعديله ولكن لم يتم تنظيمه
  • "MM" - تم تنظيمه ثم تعديله مرة أخرى. وبالتالي، هناك حاجة إلى مرحلة إضافية للالتزام التالي.
  • "A " - تم إنشاء ملف جديد وتنظيمه
  • "M " - تم تنظيمه
  • "؟؟" - تم إنشاء ملف جديد ولكن لم يتم تنظيمه (لم يتم تعقبه)

2- تخطي منطقة التدريج

ماذا لو كنت تريد تنظيم ملفاتك المتتبعة والالتزام بها كلها في أمر واحد؟

يمكنك القيام بذلك عن طريق استخدام git Commit -a -m "message".

لاحظ أن الملفات التي لم يتم تعقبها (الملفات التي تم إنشاؤها حديثًا) لن يتم تنظيمها باستخدام هذا الأمر السحري للأسف.


3 - عرض سجل الالتزام الخاص بك

استخدم git log لسرد الالتزامات التي تم إجراؤها في مستودعك بترتيب زمني عكسي (تظهر أحدث الالتزامات أولاً).

هناك العديد من الخيارات التي تسمح لك بتخصيص الإخراج. دعنا نتعرف على بعض الأشياء المفيدة:

  • -{number} يحد من عدد إدخالات السجل المعروضة (على سبيل المثال، git log -2 يعرض آخر إدخالين)
  • --stat يعرض إحصائيات مختصرة مثل # من الملفات أو # من عمليات الإدراج/الحذف لكل التزام
  • --pretty=oneline يطبع كل التزام على سطر واحد
  • --graph يضيف رسمًا بيانيًا ASCII يوضح فرعك وسجل الدمج

4 - التراجع عن الأشياء باستخدام Git Restore

عندما تريد إلغاء تنظيم ملف، استخدم gitset HEAD . عندما تريد إلغاء تعديل ملف معدل، استخدم git checkout -- {file}.

الآن هناك طريقة أسهل للقيام بالأمرين معًا! قدم الإصدار 2.23.0 من Git git Restore، والذي يوفر إمكانية 2 في 1 لإلغاء تنظيم الملفات وتعديلها.

  • استعادة git {file} - إلغاء تعديل ملف معدل
  • استعادة git --staged {file} - إلغاء تنظيم ملف مرحلي

5 - جيت فيتش مقابل جيت بول

على الأرجح أنك استخدمت git pull مرة واحدة على الأقل كمبرمج. بالإضافة إلى ذلك، من المحتمل أنك سمعت عن git fetch ولكن لم تكن لديك حاجة لاستخدامه مطلقًا. حسنًا، دعنا نتحدث عن ما يفعله بالفعل وكيف يختلف عن git pull.

يمكنك التفكير في الجلب باعتباره مجرد خطوة أولى لما يحدث أثناء عملية السحب.

في السحب، نقوم بتنزيل جميع البيانات من المستودع البعيد ونقلها إلى المستودع المحلي. هذا ما يفعله الجلب.

في هذه المرحلة، يحتوي المستودع المحلي الخاص بك على البيانات ولكنه لم يدمجها مع دليل العمل حتى تتمكن من العمل على أحدث التغييرات. الخطوة التالية في عملية السحب هي الدمج مع فرعك بحيث تكون آخر التغييرات موجودة في دليل العمل الخاص بك.

وبالتالي، تقوم عملية السحب بالجلب والدمج مرة واحدة، بينما تقوم عملية الجلب بالخطوة الأولى فقط.


6 - جيت الأسماء المستعارة

ماذا لو أخبرتك أن هناك طريقة لجعل أوامر git الخاصة بك قابلة للتخصيص؟ من خلال git config، يمكنك ذلك!

يمكنك تعيين أسماء مستعارة للأوامر المستخدمة بشكل متكرر مثل:

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

الآن، بدلاً من كتابة git Commit، تحتاج فقط إلى كتابة git ci.

هذا مفيد بشكل خاص للأوامر التي تساعد في جعل مهمة معينة أكثر سهولة.

$ git config --global alias.unstage 'reset HEAD --'
# the double dash serves as an option separator. 
# It tells Git to treat anything after it as a filename

الأمر أعلاه يجعل الأوامر التالية متكافئة:

  • git unstage fileA
  • إعادة ضبط git HEAD -- fileA

من الشائع أيضًا إضافة أمر الأخير لرؤية أحدث التزام لديك:

$ git config --global alias.last 'log -1 HEAD'

هذا كل ما في هذه المدونة! أتمنى أن تكون قد تعلمت بعض الحيل الرائعة لمشروعك القادم باستخدام Git والتي من شأنها تحسين جودة سير عملك. شكرا على القراءة!

بيان الافراج تم نشر هذه المقالة على: https://dev.to/jihoonj/do-you-really-know-git-456d?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3