إعادة كتابة السجل باستخدام git filter-repo
تعلّم كيفية إعادة كتابة سجل المستودع على نطاق واسع لإزالة الملفات الكبيرة أو البيانات الحساسة باستخدام git filter-repo.
إعادة كتابة السجل باستخدام git filter-repo درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
لماذا نعيد كتابة السجل؟
قد تحتاج أحيانًا إلى إعادة كتابة سجل المستودع بالكامل: لإزالة كلمة مرور مسرّبة، أو حذف ملفات ضخمة أُضيفت إلى الالتزامات عن طريق الخطأ، أو تصحيح عناوين البريد الإلكتروني للمؤلفين في جميع الالتزامات.
تعرّف على git filter-repo
git filter-repo أداة حديثة وسريعة لإعادة كتابة السجل. وهي تحل محل git filter-branch القديمة والبطيئة.
تثبيت الأداة
إنها برنامج منفصل، ويُثبَّت غالبًا باستخدام pip أو مدير حزم.
pip install git-filter-repoاعمل دائمًا على نسخة مستنسخة
إعادة كتابة السجل عملية مدمّرة. نفّذها على نسخة مستنسخة حديثًا حتى تتمكن من التخلص منها إذا حدث خطأ ما.
git clone --mirror git@github.com:you/repo.gitإزالة ملف من السجل
لحذف ملف من كل التزام، استخدم الخيارين --path و--invert-paths.
git filter-repo --path secrets.env --invert-pathsإزالة الكتل الثنائية الكبيرة
يمكنك إزالة الملفات التي تتجاوز حدًا معينًا للحجم لتقليص مستودع متضخم.
git filter-repo --strip-blobs-bigger-than 10Mإعادة كتابة عناوين بريد المؤلفين
صحّح عنوان بريد إلكتروني خاطئًا للمؤلف في جميع الالتزامات باستخدام mailmap أو callback.
git filter-repo --mailmap my-mailmap.txtاستبدال النص في السجل
نظّف السلاسل السرية في جميع المواضع التي تظهر فيها باستخدام ملف تعبيرات.
git filter-repo --replace-text expressions.txtتتغير تجزئات الالتزامات
تؤدي إعادة كتابة السجل إلى إنشاء تجزئات التزامات جديدة لكل ما تأثر بذلك. ويتباعد سجل المستودع عن أي نسخ قديمة.
إرسال النتيجة بالقوة
بعد إعادة الكتابة، يجب عليك تنفيذ الإرسال بالقوة لأن سجل المستودع البعيد لم يعد متطابقًا.
git push --force --allنسّق مع فريقك
بما أن نسخ الجميع المستنسخة أصبحت قديمة، يجب على أعضاء الفريق استنساخ المستودع مجددًا. أعلن عن إعادة الكتابة لتجنب إعادة إحياء البيانات المحذوفة.
تحقق سريع
اختبر مدى فهمك لإعادة كتابة السجل.
مراجعة
لقد تعلمت إعادة كتابة السجل:
- يحل
git filter-repoمحل filter-branch - أزل الملفات أو الكتل الثنائية الكبيرة أو النصوص السرية من السجل بأكمله
- اعمل دائمًا على نسخة مستنسخة؛ فتجزئات الالتزامات تتغير
- نفّذ الإرسال بالقوة واجعل الفريق يعيد استنساخ المستودع بعد ذلك
الأسئلة الشائعة
هل درس «إعادة كتابة السجل باستخدام git filter-repo» مجاني؟
نعم — نص درس «إعادة كتابة السجل باستخدام git filter-repo» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «إعادة كتابة السجل باستخدام git filter-repo»؟
تعلّم كيفية إعادة كتابة سجل المستودع على نطاق واسع لإزالة الملفات الكبيرة أو البيانات الحساسة باستخدام git filter-repo. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إعادة كتابة السجل باستخدام git filter-repo»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- Git Reflog واستعادة السجل
- Git Bisect لتنقيح الأخطاء
- صيانة المستودع وترتيبه
- إعادة كتابة السجل باستخدام git filter-repo