كيفية جعل git يتجاهل التغييرات في الحالة؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

لست متأكدًا مما يحدث هنا، ولكن في بعض الأحيان يؤدي ملف معين في مستودع التخزين الخاص بي إلى تغيير حالة اسمه.على سبيل المثال،:

قبل: 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").

مزيد من المعلومات هنا.

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