لماذا تحديث Git Location غير تلقائي عند الخروج GIT؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

عند تحويل الفروع مع الخروج GIT، أود أن أفترض أن معظم الوقت الذي ترغب في تحديث خدمات نقلك.

  • في أي موقف هل ليس ترغب في تحديث الأسفلات بعد التبديل؟
  • ما الذي سيقتحم إذا تم ذلك تلقائيا بواسطة GIT Checkout؟

تحديث مع المثال:

  • Branch A HOSTULE S في 3852F1
  • فرع ب لديه قائمة S في FD72D7

عند الفرع أ، سيؤدي GIT Checkout B إلى نسخة عمل من الفرع B مع Subsodule S في 3852F1 (مع ق شخص). سيؤدي تحديث Git Formodule إلى الخروج S في FD72D7.

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

المحلول

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

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

نصائح أخرى

git checkout --recurse-submodules تمت إضافته إلى GIT 2.13

وذكر هذا في ملاحظات الإصدار في: https://github.com/git/git/commit/e1104a5ee539408b81566066aaa6963cb87d5cd6#diff-c24776FF22455A30FBB78E378B7DF78E378B7DF0B0B0R139.

submodule.recurse تمت إضافة الخيار إلى GIT 2.14

جلس مثل:

git config --global submodule.recurse true

man git-config يقول:

يحدد إذا تواصل الأوامر إلى تنشيد تنشيط افتراضي. هذا ينطبق على جميع الأوامر التي لها --recurse-submodules اختيار. الافتراضات إلى false.

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

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