بوابة يفكر أنا إعادة كتابة واحد من الملفات الخاصة بي في كل مرة أقوم بإجراء تغيير طفيف
سؤال
ولدي ملف حجم جافا المتوسط. في كل مرة أقوم بإجراء تغيير في بلدي واحد من الملفات، BuildTable.java، بوابة التقارير على أنها تغيير هائل، حتى لو كان فقط سطر أو اثنين. BuildTable.java حوالي 200 خطوط والتغيير في هذا الالتزام تغير خط واحد فقط.
وبوابة-فرق ouputs هذا:
--- a/src/BuildTable.java
+++ b/src/BuildTable.java
@@ -1 +1 @@
-import java.io.FileNotFoundException;^Mimport java.io.FileReader;^Mimport java.io.InputStreamReader;^Mimport java.io.PushbackReader;^Mimport java.util.ArrayList;^Mimport
\ No newline at end of file
+import java.io.FileNotFoundException;^Mimport java.io.FileReader;^Mimport java.io.InputStreamReader;^Mimport java.io.PushbackReader;^Mimport java.util.ArrayList;^Mimport
\ No newline at end of file
وبعد القيام بوابة إلزام -a
Created commit fe43985: better error notifications
3 files changed, 54 insertions(+), 50 deletions(-)
rewrite src/BuildTable.java (78%)
هل جيت رؤية هذا الملف ك ثنائي أو شيء من هذا؟ هذا هو مشكلة؟ إذا كان كذلك، كيف يمكنني إصلاح هذا؟
المحلول 2
لإصلاح هذا، لم أكن في حاجة إلى تغيير أي من الإعدادات بوابة الأساسية، حيث أن خط النهايات الافتراضية التي يتم توليدها كانت الغرامة، كان مجرد الذي أخطأ هذا ملف معين. لإصلاحه فتحت همة وتنفيذ الأمر التالي
:%s/^M/\r/g
لاحظ أن اكتب "^ M" لديك لكتابة CTRL-V ومن ثم السيطرة-M.
نصائح أخرى
ومن الواضح أن بوابة لا يحب بك خط النهايات على غرار ماك (CR فقط). يستخدم في خوارزمية فرق LF كفاصل خط.
وإصلاح الملفات أن يكون على غرار ويندوز (CR LF) أو يونيكس (LF فقط) خط النهايات.
وتعيين core.autocrlf
وcore.safecrlf
مع git-config
. وهذا سوف يسبب بوابة لتحويل خط النهايات تلقائيا عند نقل من / إلى مخزن كائن. قد تحتاج إلى جعل الالتزام تخزين النهايات "الجديدة".
وانطلاقا من المثال الخاص بك الذي تم لصقه، قد تكون تعاني أيضا من "الطراز القديم ماك خط النهايات" (بفضل ddaa أ > تشارلز بيلي للحصول على التلميح)، والتي هي فقط CR
s العارية دون أي LF
، وهي قضية لم يتم التعامل معها من قبل بوابة . إذا كان هذا صحيحا (تحقق مع محرر عرافة)، استخدام أداة مثل recode
ل ترجمة هذه القمامة في بعض شكل القرن ال21، مثل نهايات خط يونكس LF
فقط المناسبة.
git diff -b
ويتجاهل نهاية السطر يتغير عندما تظهر لك الفروق.