كيفية تتبع ملفات التكوين للوحدات الفرعية في Git؟

StackOverflow https://stackoverflow.com/questions/1429256

سؤال

في Git، كيف يمكنني تنظيم العمل لتتبع ملفات التكوين المحلية للمكتبة، وهي وحدة فرعية لـ git؟

بالتفصيل:

تحتوي المكتبة على ملفات عادية يتم تعقبها، وملفات التكوين الافتراضية الموجودة في مجلدها، ولكن لم يتم تعقبها، لتجنب إعادة تعيينها أو الكتابة فوقها (وهي مدرجة في .gitignore).جميع الملفات موجودة في مجلد lib أو المجلدات الفرعية.

لقد بدأت بتتبع أحد المشاريع التي تستخدم هذا lib في Git أيضًا.الآن هناك معضلة:

  • إذا جعلت lib في هذا المشروع وحدة فرعية، فلن أتمكن من تتبع ملفات التكوين (سيتجاهلها Git، نظرًا لأنها موجودة في مجلد الوحدة الفرعية).

  • إن تتبع كل شيء كمشروع كبير هو فكرة سيئة، كما أفهم.

  • اذا انا يفعل تتبع ملفات التكوين في المكتبة، كيف يمكنني تجنب إعادة تعيينها إلى القيم الافتراضية؟هل أقوم بإنشاء فرع في مشروع العمل وأسحبه من السيد في كل مرة؟ثم ماذا لو قمت بتحرير المكتبة وملف التكوين فيها؟هذا يجب أن يسبب تعارض دمج، أليس كذلك؟

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

هل كانت مفيدة؟

المحلول

هل تريد تتبع ملف التكوين الخاص بك في دليل المشروع الرئيسي ووضع رابط رمزي في الدليل الفرعي للمكتبة؟

git add lib.conf
ln -s ../lib.conf lib/

أو هل فاتني شيء؟

نصائح أخرى

عند استخدام وحدة فرعية، يجب عليك تجنب إجراء أي تعديل بسبب الحاوية (هنا:المشروع باستخدام lib)، لأنه سينشئ مراجعة جديدة لتاريخ الوحدة الفرعية.

سيكون من الممكن، على سبيل المثال، لـ lib، الرجوع إلى التكوين نموذج الملفات التي يمكن أن تكون الأساس لـ:

  • إنشاء ملفات تكوين القيمة الافتراضية (يحتوي lib على ملف قيمة افتراضية مؤرشف، والذي يمكن استخدامه لإنشاء ملف تكوين كامل ولكن غير متتبع)
  • أو إنشاء ملف تكوين مخصص (يحتوي المشروع على قيم ملف التكوين الخاصة به، ويستخدمه لإنشاء ملف تكوين غير متتبع في نفس المكان داخل lib)

"قالب ملف التكوين الذي يحتوي على قيم مميزة بداخله، وبرنامج نصي يحول ملف config.template هذا إلى ملف تكوين خاص (وتم تجاهله)" هو النهج الذي اقترحته في هذا سؤال SO حول إدارة الدمج.

يمكن العثور على نصائح عامة أخرى حول ملفات التكوين في هذا هذا سؤال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top