Что именно изменилось в этом git commit? - PullRequest
0 голосов
/ 12 июня 2018

Посмотрите на этот коммит git: https://github.com/ClosedXML/ClosedXML/commit/8fb8848e759c5d599b9079d4a1d102e2dda054e9

Это пример коммита, который я иногда вижу.Я также иногда сталкиваюсь с этим сам, и я хотел бы избежать этого.Сначала я думал, что это были настройки разрыва строки (\n против \r\n), но здесь это не так.

Что именно изменилось в этом коммите?

1 Ответ

0 голосов
/ 12 июня 2018

Простой git diff раскрывает правду:

~/OSS/ClosedXML $ git diff 8fb8848~1 8fb8848 -- ClosedXML/AttributeExtensions.cs
diff --git a/ClosedXML/AttributeExtensions.cs b/ClosedXML/AttributeExtensions.cs
index 89b8b7f9..be354555 100644
--- a/ClosedXML/AttributeExtensions.cs
+++ b/ClosedXML/AttributeExtensions.cs
@@ -1,4 +1,4 @@
-<U+FEFF>using System;
+using System;
 using System.Linq;
 using System.Linq.Expressions;
 using System.Reflection;

Коммит 8fb8848 убрал символ <U+FEFF>, который раньше был первым символом файла.<U+FEFF> - это символ Unicode, который используется как BOM (метка порядка следования байтов).

Дальнейшие исследования показывают, что файл закодирован как UTF-8 (иликодировка, которая использует один байт для каждого символа) .

~/OSS/ClosedXML $ git checkout 8fb8848~1 -- ClosedXML/AttributeExtensions.cs
~/OSS/ClosedXML $ hexdump -C ClosedXML/AttributeExtensions.cs -n 64
00000000  ef bb bf 75 73 69 6e 67  20 53 79 73 74 65 6d 3b  |...using System;|
00000010  0d 0a 75 73 69 6e 67 20  53 79 73 74 65 6d 2e 4c  |..using System.L|
00000020  69 6e 71 3b 0d 0a 75 73  69 6e 67 20 53 79 73 74  |inq;..using Syst|
00000030  65 6d 2e 4c 69 6e 71 2e  45 78 70 72 65 73 73 69  |em.Linq.Expressi|
00000040

Первые три байта (ef bb bf) файла перед фиксацией 8fb8848 - это BOM, закодированные как UTF-8.

UTF-8 делаетне нужно a BOM, и некоторые инструменты имели проблемы с его обработкой.Вам лучше настроить ваш редактор на , а не и вставить BOM, если файлы сохранены как UTF-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...