Git وGitHub / المتقدم: الثقة والحجم والتعافي / الدرس 16
المستودعات الموحدة والسمات والتاريخ الكبير
اختر تقنيات العمل والتخزين بحسب المشكلة مع حفظ افتراضات التعاون والاختبار الصحيحة.
في هذه الصفحة
أهداف الدرس
- ميّز الشجرة المحدودة والتاريخ الضحل والاستنساخ الجزئي وLFS.
- استخدم السمات والملكية لتقليل التغيير العرضي.
افصل حجم المستودع عن نطاق النسخة
يجمع الموحد مشاريع ويتيح تغييراً ذرياً بينها مع تنسيق وأدوات أكبر. قد تكلف السعة بسبب التاريخ أو الكائنات أو المسارات أو العمليات وهي اختناقات مختلفة. قس قبل الاختيار. يحد sparse ملفات الشجرة ويحد shallow النسب ويؤجل partial كائنات ويخزن LFS المحتوى بنظام إضافي. لا يصحح أي منها الاعتماد أو الاختبار أو الملكية تلقائياً. وثق المفاضلة للمساهم.
حد شجرة العمل بمختبر مضبوط
يفترض المثال مستودعاً نظيفاً بمجلدات notebook وcalendar وdocs وملفات جذر. يختار نمط cone مجلدات بقواعد تشمل بعض ملفات الآباء والجذر ولا يحذف التاريخ أو يقلل كل الكائنات. قد يرى الفهرس والتاريخ ما لا يظهر بالشجرة. تحقق من الدعم وتجنب التجريبي بلا سبب. تدعم الاختبارات النطاق أو تطلب نسخة كاملة صراحة.
git sparse-checkout init --cone
git sparse-checkout set packages/notebook docs
git sparse-checkout list
تضم القائمة docs وpackages/notebook وفق الإعداد وتبقى المسارات الأخرى بالتاريخ. يتغير إعداد المختبر فقط ولا نسخة المشروع.
اعرف أثر التاريخ المحدود على الإجابات
قد تفتقد الضحلة أسلافاً لقاعدة الدمج والوصف والنسبة والتنصيف. تعتمد الجزئية بعيداً واعداً وقد تجلب عند الطلب فتحتاج عملية تبدو محلية شبكة. لا تمارس الدورة خدمات خارجية. يستخدم LFS مؤشرات ونقلاً منفصلاً يحتاج إعداداً وتخزيناً. قد تحوي الأرشفة مؤشرات لا بايتات البناء. افحص العقد قبل اعتبار الغياب فساداً.
حدد تطبيع النص بقصد
قد تخفي نهايات الأسطر الفرق الحقيقي. يحدد .gitattributes المراجع التطبيع والنهايات. يستخدم المثال كشفاً آلياً وLF للصدفة وثنائياً للصور. قد يحتاج إدخاله ترجيع تطبيع مستقلاً مراجعاً؛ لا تخلط التغيير الواسع بميزة أخرى. تضبط السمات مرشحات ودمجاً وهي حدود تنفيذ أو بيانات. راجعها كالبناء وتحقق مؤقتاً عبر المنصات.
* text=auto
*.sh text eol=lf
*.png binary
هذا محتوى ملف مختبر لا أمر لتطبيع المشروع. يعطل binary معاملة الفرق والدمج النصي والتحويل للمطابق. راجع الأنواع قبل قاعدة واسعة.
احفظ التعاون عبر حدود المشاريع
يحتاج الموحد ملكية واختيار اختبار بالاعتماد ومراجعة العقود. تطلب قواعد GitHub مراجعة بحسب الضبط ولا تعوض فهم المشترك. وثق تحديث المولد والقفل. أبعد الثنائي الكبير عند وجود تخزين معتمد ولا تعتبر حذف الحالي تقليصاً فورياً للتاريخ. تجنب كتابة التاريخ عابراً للحجم؛ تعطل المعرّفات وتحتاج هجرة وتعافياً منسقين.
الأخطاء الشائعة وإصلاحها
يرى البناء مؤشر LFS بدل المحتوى
- لماذا يحدث؟
- لم تستوف متطلبات نقل الملف الكبير.
- كيف تصلحه؟
- افحص إعداد LFS ومسار المحتوى المعتمد.
- كيف تتجنب تكراره؟
- وثق جلب الأرشيف وCI للكبير.
لا يجد التنصيف أسلافاً متوقعة
- لماذا يحدث؟
- النسخة بتاريخ ضحل.
- كيف تصلحه؟
- احصل على تاريخ كاف بمسار مفوض.
- كيف تتجنب تكراره؟
- طابق العمق مع مهام التاريخ.
تغمر النهايات فرق الميزة
- لماذا يحدث؟
- تغير التطبيع دون مراجعة منفصلة.
- كيف تصلحه؟
- افصل التطبيع من السلوك.
- كيف تتجنب تكراره؟
- راجع السمات والافتراض مبكراً.
اختبر فهمك
1. هل يعني sparse اختفاء غير المختار من المستودع؟
اعرض الحل المشروح
لا؛ يضبط إظهار الشجرة وتبقى المسارات بالتاريخ والفهرس. تفهم الأدوات النطاق ولا تفترض حذف الغائب من الإيداع.
2. يريد الفريق استنساخاً أسرع وتاريخ إصدار موثوقاً. ما المفاضلة؟
اعرض الحل المشروح
قِس النقل والكائنات والعمل واختر المدعوم مع حفظ النسب والمحتوى اللازم. تحقق من describe وقاعدة الدمج والبناء بالإعداد.
أهم ما تعلمته
- تحل sparse وshallow وpartial وLFS مشكلات مختلفة.
- السمات سياسة مستودع مراجعة.
- تحفظ تقنيات الحجم عقود التاريخ والاختبار.