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

`.git-blame-ignore-revs` لتجاهل تغييرات التنسيق المجمعة.

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

.git-blame-ignore-revs هي إحدى ميزات Git المقدمة في الإصدار 2.23 والتي تسمح لك بتجاهل التزامات محددة في نتائج إلقاء اللوم على git. يعد هذا مفيدًا بشكل خاص لعمليات التنفيذ المجمعة التي تغير عددًا كبيرًا من الأسطر دون تغيير الوظيفة الفعلية للتعليمات البرمجية، مثل تغييرات التنسيق أو إعادة التسمية أو تطبيق معايير الترميز عبر قاعدة التعليمات البرمجية. من خلال تجاهل هذه التغييرات غير الوظيفية، يمكن لـ git إلقاء اللوم على التعديلات ذات المعنى التي تشرح السياق والسبب الكامن وراء الكود.

لماذا .git-blame-ignore-revs مهم

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

على سبيل المثال، إذا كان فريقك يستخدم أداة مثل Prettier أو ESLint لإعادة تنسيق قاعدة التعليمات البرمجية بأكملها، فقد يصل الالتزام الناتج إلى آلاف أسطر التعليمات البرمجية. بدون .git-blame-ignore-revs، سيُظهر git Blame هذا الالتزام باعتباره مسؤولاً عن كل سطر متأثر، مما قد يحجب التاريخ الأكثر أهمية وراء كل سطر.

باستخدام .git-blame-ignore-revs، يمكنك إخبار gitlem بتخطي هذه الالتزامات والتركيز على التغييرات المهمة.

كيفية الاستخدام .git-blame-ignore-revs

لفهم كيفية استخدام هذه الميزة، دعنا نستعرض مثالاً من مستودع React.

الخطوة 1: تحديد عمليات التنسيق المجمعة

يتضمن كود مصدر React التزامات مجمعة حيث تم تشغيل أدوات مثل Prettier عبر المشروع بأكمله. فيما يلي اثنين من هذه الالتزامات:

`.git-blame-ignore-revs` to ignore bulk formatting changes.

  1. الالتزام: c998bb1 الرسالة: [مترجم] تشغيل أجمل، إصلاح المفاجئة يطبق هذا الالتزام تنسيقًا أجمل عبر قاعدة التعليمات البرمجية، مما يؤدي إلى تغيير العديد من الأسطر دون تغيير الوظيفة.

`.git-blame-ignore-revs` to ignore bulk formatting changes.

2. الالتزام: fd2b3e1

الرسالة: المترجم: Unfork config

يحتوي هذا الالتزام على تحديثات إضافية لتكوين Prettier، مما يؤثر على جميع ملفات .ts و.tsx الموجودة في المستودع.

`.git-blame-ignore-revs` to ignore bulk formatting changes.

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

الخطوة 2: إنشاء ملف .git-blame-ignore-revs

لجعل git يتجاهل التزامات التنسيق المجمعة هذه، يمكننا إنشاء ملف .git-blame-ignore-revs في جذر المستودع.

  1. قم بإنشاء ملف .git-blame-ignore-revs:
touch .git-blame-ignore-revs

2. أضف تجزئات الالتزام ذات الصلة إلى الملف، موضحًا سبب تجاهل كل التزام. في هذه الحالة، سنضيف الالتزامين اللذين حددناهما سابقًا:

# Prettier formatting changes 
c998bb1ed4b3285398c9c7797135d3f060243c6a 
fd2b3e13d330a4559f5aa21462e1cb2cbbcf144b

3. احفظ ملف .git-blame-ignore-revs في المستودع. يمكن إصدار هذا الملف جنبًا إلى جنب مع الكود الخاص بك، مما يسمح للفريق بأكمله باستخدام نفس قائمة الالتزامات المتجاهلة.

الخطوة 3: تكوين Git لاستخدام .git-blame-ignore-revs

لتجنب كتابة خيار --ignore-revs-file في كل مرة تستخدم فيها gitlem، يمكنك تكوين Git لاستخدام ملف .git-blame-ignore-revs تلقائيًا.

  1. قم بإعداد التكوين على مستوى المستودع:
git config blame.ignoreRevsFile .git-blame-ignore-revs

يضمن ذلك أنه في كل مرة يقوم شخص ما بتشغيل git flesh في هذا المستودع، سيتجاهل Git تلقائيًا الالتزامات المدرجة في .git-blame-ignore-revs.

الخطوة 4: تشغيل gitلوم مع الالتزامات المتجاهلة

دعونا نرى كيف يعمل هذا عمليا. بدون تجاهل عمليات التنسيق المجمعة، قد يظهر لوم git:

$ git blame src/someFile.tsx
c998bb1e (Joe Bloggs 2023-03-15 10:00:00  0200 1) import React from 'react';
fd2b3e13 (Alan 2023-04-01 14:15:30  0200 2) function App() {
c998bb1e (Joe Bloggs 2023-03-15 10:00:00  0200 3)     return 
Hello, world!
; fd2b3e13 (Ben 2023-04-01 14:15:30 0200 4) }

يشير هذا الإخراج إلى أن التغيير الأخير في السطرين 1 و3 كان بسبب التزام التنسيق Prettier (c998bb1e)، وتم تعديل السطرين 2 و4 في التزام مجمع آخر (fd2b3e13). نظرًا لأن هذه تغييرات في التنسيق، فهذا ليس مفيدًا لفهم من قدم المنطق الفعلي وراء هذه السطور.

بعد تكوين .git-blame-ignore-revs، سيؤدي تشغيل git Blame إلى تخطي الالتزامات المجمعة وإظهار السجل الحقيقي:

$ git blame src/someFile.tsx
a23d9b34 (May 2022-12-01 09:30:00  0200 1) import React from 'react';
b12e45a6 (JJ 2022-12-05 11:45:15  0200 2) function App() {
a23d9b34 (Joe 2022-12-01 09:30:00  0200 3)     return 
Hello, world!
; b12e45a6 (Ram 2022-12-05 11:45:15 0200 4) }

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

خاتمة

تعد ميزة .git-blame-ignore-revs في Git 2.23 بمثابة تغيير جذري للمشاريع ذات التنسيق المجمع أو تغييرات النمط. من خلال إعداد ملف .git-blame-ignore-revs وتكوين المستودع الخاص بك، يمكنك تطبيق معايير الترميز، أو تشغيل أدوات مثل Prettier، أو تعليمات برمجية لإعادة البناء دون القلق بشأن تلويث سجل اللوم.

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

معلومات عنا:

في Think Throo، نحن في مهمة لتعليم المفاهيم المعمارية لقاعدة التعليمات البرمجية المتقدمة المستخدمة في المشاريع مفتوحة المصدر.

ضاعف مهاراتك في البرمجة من خلال ممارسة المفاهيم المعمارية المتقدمة في Next.js/React، وتعلم أفضل الممارسات وبناء مشاريع على مستوى الإنتاج.

نحن مفتوح المصدر - https://github.com/thinkthroo/thinkthroo (لا تعطينا نجمة!)

قم بتعزيز مهارات فريقك من خلال دوراتنا المتقدمة المبنية على بنية قاعدة التعليمات البرمجية. تواصل معنا على [email protected] لمعرفة المزيد!

مراجع:

  1. https://github.com/facebook/react/blob/main/.git-blame-ignore-revs

  2. https://Gist.github.com/kateinoigakukun/b0bc920e587851bfffa98b9e279175f2

  3. https://github.com/facebook/react/commit/c998bb1ed4b3285398c9c7797135d3f060243c6a

  4. https://moxio.com/blog/ignoring-bulk-change-commits-with-git-blame/



بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/thinkthroo/git-blame-ignore-revs-to-ignore-bulk-formatting-changes-5fee?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3