Имея дело с файлами, которые Git отказывается сбрасывать? - PullRequest
4 голосов
/ 30 июля 2009

У меня и моих коллег ужасные проблемы с тем, чтобы заставить git вести себя правильно с некоторыми файлами в наших клонах репозитория Windows. Клоны были сделаны путем клонирования репозитория, который создается на компьютере с OSX. Мы установили для autocrlf значение true, но проблема в том, что мы регулярно находим файлы, которые git считают измененными, даже если мы их никогда не трогаем (мы даже не открываем их в редакторе.

Следующий вывод иллюстрирует проблему: есть идеи, где я ошибаюсь?

$ git status                                                                                                 
# On branch master                                                                                           
# Your branch is behind 'origin/master' by 27 commits, and can be fast-forwarded.                            
#                                                                                                            
# Changed but not updated:                                                                                   
#   (use "git add <file>..." to update what will be committed)                                               
#   (use "git checkout -- <file>..." to discard changes in working directory)                                
#                                                                                                            
#       modified:   Web Applications/webclient/language/en/lang_copyitems.ini                                
#                                                                                                            
no changes added to commit (use "git add" and/or "git commit -a")                                            

Administrator@windows-dev ~/Documents/Workspace/prestige.git                                                 
$ git diff "Web Applications/webclient/language/en/lang_copyitems.ini"                                       
diff --git a/Web Applications/webclient/language/en/lang_copyitems.ini b/Web Applications/webclient/language/
index 800c188..ed11c0e 100644                                                                                
--- a/Web Applications/webclient/language/en/lang_copyitems.ini                                              
+++ b/Web Applications/webclient/language/en/lang_copyitems.ini                                              
@@ -1,12 +1,12 @@                                                                                            
-<EF><BB><BF>   [Header]                                                                                     
-       Description=Language strings for 'copyitems.php'                                                     
-                                                                                                            
-       [Messages]                                                                                           
-       300=Copy                                                                                             
-       301=Close                                                                                            
-       302=COPY STORIES                                                                                     
-       303=Name                                                                                             
-       304=In Queue                                                                                         
-       305=New Name                                                                                         
-       306=Items to Copy                                                                                    
-       308=This item has mandatory metadata fields that are not correctly set. Click any part of this messag
+<EF><BB><BF>   [Header]                                                                                     
+       Description=Language strings for 'copyitems.php'                                                     
+                                                                                                            
+       [Messages]                                                                                           
+       300=Copy                                                                                             
+       301=Close                                                                                            
+       302=COPY STORIES                                                                                     
+       303=Name                                                                                             
+       304=In Queue                                                                                         
+       305=New Name                                                                                         
+       306=Items to Copy                                                                                    
+       308=This item has mandatory metadata fields that are not correctly set. Click any part of this messag

Administrator@windows-dev ~/Documents/Workspace/prestige.git                                                 
$ git checkout HEAD "Web Applications/webclient/language/en/lang_copyitems.ini"                              

Administrator@windows-dev ~/Documents/Workspace/prestige.git                                                 
$ git status                                                                                                 
# On branch master                                                                                           
# Your branch is behind 'origin/master' by 27 commits, and can be fast-forwarded.                            
#                                                                                                            
# Changed but not updated:                                                                                   
#   (use "git add <file>..." to update what will be committed)                                               
#   (use "git checkout -- <file>..." to discard changes in working directory)                                
#                                                                                                            
#       modified:   Web Applications/webclient/language/en/lang_copyitems.ini                                
#

Ответы [ 2 ]

6 голосов
/ 30 июля 2009

Проблема с этими настройками, как показано в руководстве GitHub - автоматическое преобразование выполняется во время проверки хранилища ...

Это означает, что вам не нужно открывать файл, чтобы вызвать какие-либо изменения.

Разве невозможно оставить значение autocrlf равным false и открыть эти файлы Windows в редакторах, которые могут учитывать символы обратной строки?

Примечание ( здесь показано ), если вам нужно преобразование, за исключением некоторых файлов, вы можете добавить .gitattributes в родительский каталог с помощью:

myFile -crlf

В файле вы устанавливаете атрибуты для пути (или шаблона) или сбрасываете их (со знаком минус).
Атрибут crlf - это атрибут, который сообщает, затрагивается ли файл параметрами core.autocrlf. Если вы отключите его, Git не будет связываться с окончаниями строк в файле

1 голос
/ 20 сентября 2011

Чтобы решить эту проблему на моем компьютере с Windows 7 с помощью git 1.7.3.1, мне пришлось установить для параметра core.filemode значение false.

git config -e --local
...