كيفية كتابة رسائل الالتزام الجيد: دليل Git العملي

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

لقد سألت مؤخرًا على Hashnode ، "ما اصطلاح رسالة الالتزام الذي تستخدمه في العمل؟" وحصلت على بعض الردود الرائعة من المستخدمين الذين يشرحون الاصطلاحات التي يستخدمونها في العمل ولمشاريعهم الشخصية.

ما اصطلاح الالتزام الذي تستخدمه في العمل؟

منhashnode //t.co/HewCBxRCbr

- BOLAJI ✨ (iambolajiayo) ٢٥ نوفمبر ٢٠١٩

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

ملاحظة: تم نشر هذه المقالة لأول مرة على مدونتي هنا.

مقدمة حول التحكم في الإصدار باستخدام Git

يعد برنامج التحكم في الإصدار جزءًا أساسيًا من ممارسات مطوري البرامج في العصر الحديث.

إلى حد بعيد ، Git هو نظام التحكم في الإصدارات الأكثر استخدامًا في العالم. إنه مشروع مفتوح المصدر موزع ويتم صيانته بنشاط تم تطويره في الأصل في عام 2005 بواسطة Linus Torvalds ، المنشئ الشهير لنواة نظام التشغيل Linux.

جديد على Git؟ تحقق من دليل البدء الرسمي أو هذه الشريحة من حديث سابق قدمته.

ما هي رسالة الالتزام؟

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

خيارات الالتزام

  • م

يعيّن هذا الخيار رسالة الالتزام.

git add static/admin/config.yml git commit -m "Setup multiple roles for netlify-cms git gateway" 
  • -أ أو - الكل

يلتزم هذا الخيار تلقائيًا بجميع (بما في ذلك الجديدة) الملفات المتعقبة أو المعدلة أو المحذوفة.

git commit -a -m "Add a new role for netlify-cms git gateway" 
  • - تعديل

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

git add . git commit --amend -m "Update roles for netlify-cms git gateway" 

لماذا يجب أن تكتب رسائل جيدة الالتزام؟

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

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

هل سبق لك أن حاولت تشغيل git logأحد مشاريعك القديمة لرؤية رسائل الالتزام "الغريبة" التي استخدمتها منذ إنشائها؟ قد يكون من الصعب فهم سبب إجراء بعض التغييرات في الماضي ، وستتمنى أن تقرأ هذه المقالة مسبقًا :).

يمكن لرسائل الالتزام أن تنقل بشكل مناسب سبب إجراء التغيير ، وفهم ذلك يجعل التطوير والتعاون أكثر كفاءة.

كيفية كتابة رسائل الالتزام باستخدام Git

قبل الآن ، كنت أستخدم فقط git commit -m "Fix X to allow Y to use Z"في مشاريعي الشخصية موضوعًا فقط وبدون وصف إضافي. يعد هذا أمرًا رائعًا للإصلاحات الصغيرة والواضحة git commit -m "Fix typo in README.md، ولكن في حالات التغييرات الأكثر شمولاً ، ستحتاج إلى إضافة بعض التفاصيل الإضافية.

طريقة المحرر

قم بالتشغيل git commitبدون رسالة أو خيار وسيفتح محرر النصوص الافتراضي لكتابة رسالة الالتزام.

لتهيئة المحرر "الافتراضي":

git config --global core.editor nano 

سيؤدي هذا إلى تكوين Git لاستخدام nano كمحرر افتراضي. استبدل "nano" بكلمة "emacs" أو "vim" أو أيًا كان ما تفضله.

في المحرر المفتوح ، يكون السطر الأول هو الموضوع (وصف قصير) ، اترك سطرًا فارغًا بعده ، وكل شيء آخر هو الوصف الموسع (النص الأساسي).

طريقة سطر الأوامر

git commit -m "Subject" -m "Description..." 

-mالخيار الأول هو الموضوع (وصف قصير) ، والخيار التالي هو الوصف الموسع (النص الأساسي).

كيفية كتابة رسائل الالتزام الجيد

There are several conventions used by different teams and developers to write good commit messages. I'll only outline some general rules and tips for writing commit messages–you have to decide what convention you want to follow. And if you work for a company or contribute to open source, you have to adapt to their convention :).

For consistency, you can use one convention for work and another for personal projects as you might change jobs sometime, and the convention might also change.

Be sure to check out this thread for some amazing commit message conventions or add yours to help someone make a decision.

Here's a great template of a good commit message originally written by Tim pope

Capitalized, short (50 chars or less) summary More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. In some contexts, the first line is treated as the subject of an email and the rest of the text as the body. The blank line separating the summary from the body is critical (unless you omit the body entirely); tools like rebase can get confused if you run the two together. Write your commit message in the imperative: "Fix bug" and not "Fixed bug" or "Fixes bug." This convention matches up with commit messages generated by commands like git merge and git revert. Further paragraphs come after blank lines. - Bullet points are okay, too - Typically a hyphen or asterisk is used for the bullet, followed by a single space, with blank lines in between, but conventions vary here - Use a hanging indent If you use an issue tracker, add a reference(s) to them at the bottom, like so: Resolves: #123 

Looks great, right? Here's how you can make yours great too:

  1. Specify the type of commit:
  • feat: The new feature you're adding to a particular application
  • fix: A bug fix
  • style: Feature and updates related to styling
  • refactor: Refactoring a specific section of the codebase
  • test: Everything related to testing
  • docs: Everything related to documentation
  • chore: Regular code maintenance.[ You can also use emojis to represent commit types]
  1. Separate the subject from the body with a blank line
  2. Your commit message should not contain any whitespace errors
  3. Remove unnecessary punctuation marks
  4. Do not end the subject line with a period
  5. Capitalize the subject line and each paragraph
  6. Use the imperative mood in the subject line
  7. Use the body to explain what changes you have made and why you made them.
  8. Do not assume the reviewer understands what the original problem was, ensure you add it.
  9. Do not think your code is self-explanatory
  10. Follow the commit convention defined by your team

Conclusion

أهم جزء في رسالة الالتزام هو أنها يجب أن تكون واضحة وذات مغزى. على المدى الطويل ، تُظهر كتابة رسائل الالتزام الجيد مدى كونك متعاونًا. لا تقتصر فوائد كتابة رسائل الالتزام الجيد على فريقك فحسب ، بل تتوسع بالفعل لتشمل نفسك والمساهمين المستقبليين.

هل تريد معرفة المزيد عن Git وتصبح "وحدة تحكم في الإصدار" احترافية؟ تحقق من هذه الموارد الممتازة:

  • //try.github.io/
  • //git-scm.com/book/en/v2
  • //www.git-tower.com/learn/
  • //learngitbranching.js.org/
  • //github.com/commitizen/cz-cli