كيفية ترتيب تاريخ تعهداتك في Git

نحن ننشر ترجمة للمقالة التي وجدناها على hackernoon.com. مؤلفه ، تياجو ميراندا ، يكتب عن كيفية جعل العمل مع Git أكثر ملاءمة وفعالية.



حول بعض الأوامر المفيدة للغاية في Git


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

1. ما هي القصة في جيت؟




سجل دقيق لجميع الالتزامات التي تحتوي على التغييرات التي تم إجراؤها على الملفات. في ذلك ، يمكنك تتبع تغييرات محددة ووقت إجرائها ، أو مقارنة الإصدار الحالي بالإصدار السابق. أين ترى القصة؟ أدخل الأمر من خلال Git Bash:

git log --oneline

إذا كان لديك عدد كبير جدًا من عمليات التنفيذ ، يمكنك التبديل من تعليق إلى آخر باستخدام مفاتيح الأسهم أو مفاتيح Page Up / Page Down - تمامًا مثل أي ملف آخر. للخروج ، اضغط على مفتاح التشغيل السريع (q).

2. حول التعليقات على التعهدات


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

  • كيف لا: "Fixed index.html"
  • كيفية: "تحسين سرعة شريط التنقل"

دعونا نرى ما هذا.
تخيل أنك تعمل في مثل هذا المشروع الضخم الذي لا يعرفه حتى معظم المتخصصين العاملين فيه. يمكنك تطوير ميزة جديدة واختبارها على جهازك ، وكل شيء يعمل بشكل جيد.

ولكن بعد دفع كل شيء يتوقف فجأة عن العمل ، وأول شيء تتحقق منه هو التغييرات التي تم إجراؤها أثناء تطوير هذه الميزة. في سجل Git ، تجد العديد من عمليات التنفيذ التي تحتوي على تعليقات بأسلوب "ثابت". تخيل كم من الوقت لديك لقضاء الوقت المناسب!

3. قم دائمًا بالالتزامات


يلتزم ، يرتكب ، ويرتكب مرة أخرى. الانتهاء من الوظيفة - إضافة التزام ، وتحسين نمط عنصر كتلة - إضافة التزام وهلم جرا. من الناحية المثالية ، يجب إرسال التزام مع كل تغيير.

ربما تفكر: لماذا يوجد العديد من الالتزامات؟ السبب الرئيسي هو أن وظيفتك الجديدة قد تتعارض مع رمز شخص آخر ، ولكن إذا كنت دائمًا ما تقوم بتغييرات صغيرة ، فسيكون العثور عليها وإصلاحها أسهل. هذا يوفر عليك الوقت من خلال تتبع العشرات أو المئات من الخطوط المعدلة في نفس الالتزام.

4. تصحيح التعليق الأخير على الالتزام


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

git commit -m “correct message” --amend

يرجى ملاحظة ما يلي: إذا كنت قد بدأت بالفعل في الالتزام بمستودع بعيد ، فمن الأفضل عدم استخدام هذا الأمر.

انظر الوثائق الرسمية للحصول على التفاصيل .

5. اجمع عمليات X الأخيرة في واحد


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

git reset HEAD~3

يعمل أمر HEAD ~ 3 على إرجاع 3 عمليات تنفيذ أعلى ، بما في ذلك أحدثها. في هذا المثال ، سيتم حذف عملياتك الثلاثة الأخيرة من السجل ، لكن التغييرات في الشفرة ستظل كما هي. حان الوقت الآن لمعرفة الرمز الذي تريد تنفيذه ، لهذا ندخل الأمر:

git stage --diff

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

لاحظ أن HEAD يشير عادةً إلى آخر التزام قمت بإضافته. إذا لم تكن متأكدًا ، فتحقق من سجل Git. إذا تم تجميد التزامك الأخير (وليس الحالة الأكثر شيوعًا) ، فسيؤدي الأمر HEAD ~ 1 إلى محو جميع عمليات التنفيذ من الفرع المجمد. لمعرفة المزيد ، راجع الوثائق.

6. حذف آخر التزام بالتغييرات


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

git reset –-hard HEAD~1

الآن تم حذف التزامك الأخير ، بالإضافة إلى جميع التغييرات ذات الصلة في التعليمات البرمجية.

7. امسح سجل الالتزام الخاص بك


الطريقة الأكثر فعالية لمسح تاريخ الالتزام هي استخدام الأمر rebase. كن حذرا: يمكنك حذف التزام بالضغط عن طريق الخطأ على المفتاح الخاطئ. لذا ، لنقم بتشغيل rebase بشكل تفاعلي (-i flag) بالأمر:

git rebase -i HEAD~5



بمجرد إدخاله ، سترى قائمة من آخر 5 عمليات (HEAD ~ 5) داخل الوحدة الطرفية. يتم فرز جميع عمليات التنفيذ حسب التاريخ ، أي أن أعلىها سيكون الأحدث (يتم فتح هذه القائمة باستخدام Vim ، محرر النصوص Git الافتراضي الذي يسمح بتحرير الملفات النصية داخل الوحدة الطرفية). وإليك تعليمات موجزة مع عدة أوامر مفيدة. في معظم الحالات ، ستحتاج إلى أوامر الاسكواش والمكافأة.

سيؤدي استبدال الأمر pick مع الأمر squash إلى إزالة هذا الالتزام من السجل ، وسيتم تجميع جميع التغييرات في التعليمات البرمجية مع آخر التزام تم تمييزه بواسطة الأمر pick.

إذا كنت تريد تعديل التعليق ، يمكنك استبدال الأمر pick بالأمر reword وإعادة كتابة التعليق.

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

:wq!

يلزم استخدام النقطتين (:)للإشارة إلى رغبتك في نقل الأمر (w)وكتابة (حفظ) التغييرات (q)والخروج (!)وتنفيذ الأمر.

يرجى ملاحظة أن كل مجموعة ملتزمة ستتلقى تعليقك. يمكن التحقق من النتيجة في سجل Git.

إذا غادرت هذه النافذة لسبب ما دون إكمال العملية ، يمكنك العودة في أي وقت باستخدام الأمر:

git rebase --edit

إذا كنت تريد مغادرة النافذة دون حفظ التغييرات ، فاضغط على مفتاح ESC وأدخل:

:q!

سيتلقى Vim أمرًا لإغلاق الملف بدون حفظ.

8. إدارة الفهرسة


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

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

git add .

الآن احذف الملف الذي لا تحتاجه من الفهرسة:

git reset -- Readme.txt

وتحقق من النتيجة:

git status

أضف جميع الملفات من بعض الامتدادات ، على سبيل المثال CSS:

git add *.css

أضاف كل شيء عن طريق الخطأ؟ ثم امسح الفهرس باستخدام الأمر:

git reset --

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

git add -i

أولاً ، حدد خيارًا بإدخال الرقم المناسب ، على سبيل المثال (3) ، لاستعادة الإجراءات الخاصة بك.

من خلال تحديد خيار ، يمكنك إدخال قائمة بالملفات التي تريد إزالتها من الفهرسة ، واحدة تلو الأخرى.

عند الانتهاء ، اضغط على (أدخل).

تتم إضافة الملفات بنفس الطريقة. باستخدام الخيار (4) ، قم بإضافة ملف غير متتبع.

للخروج ، أدخل (q)قائمة الخيارات.

9. الخلاصة


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

هل تريد معرفة المزيد عن البرمجة الزوجية والبدء عن بُعد؟ تحقق من Microverse.org .

All Articles