كيفية جعل git يتجاهل التغييرات في الحالة؟
سؤال
لست متأكدًا مما يحدث هنا، ولكن في بعض الأحيان يؤدي ملف معين في مستودع التخزين الخاص بي إلى تغيير حالة اسمه.على سبيل المثال،:
قبل: File.h
بعد: file.h
لا يهمني حقًا سبب حدوث ذلك، ولكن هذا يجعل git يعتقد أنه ملف جديد، وبعد ذلك يجب أن أذهب وأغير اسم الملف مرة أخرى.هل يمكنك فقط جعل git يتجاهل تغييرات الحالة؟
[يحرر]أظن أن Visual Studio يقوم بشيء غريب مع هذا الملف بالذات، لأنه يبدو أنه يحدث في أغلب الأحيان عندما أقوم بفتحه وحفظه بعد التغييرات.ليس لدي أي طريقة لإصلاح الأخطاء في VS، ولكن آمل أن يكون git أكثر قدرة قليلاً.
المحلول
منذ الإصدار 1.5.6 هناك ignorecase
الخيار متاح في [core]
قسم من .git/config
على سبيل المثاليضيف ignorecase = true
لتغييره لمستودع واحد فقط، قم بتشغيل هذا المجلد:
git config core.ignorecase true
لتغييره عالميًا:
git config --global core.ignorecase true
نصائح أخرى
في الإصدار 1.6.1.9 من git لنظام التشغيل Windows، وجدت أن "ignorecase=true" في التكوين قد تم تعيينه بالفعل افتراضيًا.
يمكنك إجبار git على إعادة تسمية الملف بطريقة الحالة فقط باستخدام هذا الأمر:
git mv --cached name.txt NAME.TXT
لاحظ أن هذا لا يغير حالة الملف الموجود في نسختك المسحوبة على قسم Windows، لكن git يسجل تغيير الحالة ويمكنك تنفيذ هذا التغيير.سوف تستخدم عمليات الخروج المستقبلية الغلاف الجديد.
الموقف الموصوف في السؤال يتكرر الآن مع نظام التشغيل Mac OS X، إصدار git >= 1.7.4 (على ما أظن).العلاج هو تعيين تجاهل الحالة = خطأ وإعادة تسمية الملفات ذات الأحرف الصغيرة (التي تغيرت git بهذه الطريقة، وليس Visual Studio) مرة أخرى إلى UsualCase يدويًا (أي."mv myname MyName").
مزيد من المعلومات هنا.