У меня проблема с git (через черепаховый git), который показывает некоторые файлы моего проекта как измененные, но на самом деле они не изменены. Я перепроверил это, сделав новый клон репозитория, и, не касаясь его, я уже обнаружил «модифицированные» файлы во вновь созданной рабочей копии. Это раздражает, потому что некоторые операции заблокированы (потому что это переопределит мои «измененные» файлы), но я не могу их отменить, удаление + возврат тоже не работает. Фиксация «изменений» работает, но это не идеальное решение.
Я на Windows, использую TortoiseGit 1.8.16.0 и Git 2.6.4. Использование git status
напрямую также показывает, что одни и те же файлы «модифицированы».
Кажется, это происходит только в каталоге моего проекта, который раньше был подмодулем, но теперь я использую поддерево git. Итак, в какой-то момент я полностью удалил подмодуль (или так я думаю) и создал поддерево.
У кого-нибудь была такая же проблема? Как исправить раз и навсегда? (даже после внесения «изменений» через некоторое время, иногда через несколько недель, у меня будут другие файлы, а иногда и те же файлы, которые начнут показывать ту же странную проблему).
Вот результат сравнения одного из этих файлов: git diff app.config
diff --git a/Ozytis.Common/Web/app.config b/Ozytis.Common/Web/app.config
index 3686aab..f559fe7 100644
--- a/Ozytis.Common/Web/app.config
+++ b/Ozytis.Common/Web/app.config
@@ -1,25 +1,25 @@
-<U+FEFF><?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <configSections>
- <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
- <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=ne
utral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
- </configSections>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
- <entityFramework>
- <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
- <parameters>
- <parameter value="v11.0" />
- </parameters>
- </defaultConnectionFactory>
- <providers>
- <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
- </providers>
- </entityFramework>
+<U+FEFF><?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <configSections>
+ <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
+ <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=ne
utral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+ </configSections>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+ <entityFramework>
+ <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
+ <parameters>
+ <parameter value="v11.0" />
+ </parameters>
+ </defaultConnectionFactory>
+ <providers>
+ <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
+ </providers>
+ </entityFramework>
</configuration>
\ No newline at end of file
Для этого файла diff показывает, что все строки изменены. Однако я проверил с помощью шестнадцатеричного редактора предыдущую и текущую версии файла, переводы строк одинаковы, фактически каждый байт одинаков.
Кроме того, некоторые файлы показывают, что отличаются всего несколько строк (но опять же, это не так). Даже если весь файл имеет последовательные переводы строк.
git diff
? - person choroba   schedule 17.12.2015git diff app.config
diff --git a/Ozytis.Common/Web/app.config b/Ozytis.Common/Web/app.config index 3686aab..f559fe7 100644 --- a/Ozytis.Common/Web/app.config +++ b/Ozytis.Common/Web/app.config @@ -1,25 +1,25 @@ -<U+FEFF><?xml version="1.0" encoding="utf-8"?> -<configuration> - <configSections> [snip] - </entityFramework> +<U+FEFF><?xml version="1.0" encoding="utf-8"?> +<configuration> + <configSections> [snip] + </entityFramework> </configuration> \ No newline at end of file
PS: нет возможности оставить перевод строки в комментариях? - person youen   schedule 17.12.2015git diff
вывод к содержанию вопроса - person Zdeslav Vojkovic   schedule 17.12.2015git diff --ignore-space-at-eol
объяснит проблему, ‹CR›‹LF› против ‹LF› - person user3159253   schedule 17.12.2015git status
? Если это так, я предполагаю, что это либо ошибка с вашим шестнадцатеричным редактором, либо с вашей установкой git. - person houtanb   schedule 17.12.2015core.autocrlf
. Вам также может потребоваться принудительно исправить проблему с окончанием строки в новом коммите. - person user3159253   schedule 17.12.2015