Имея дело с файлами, которые Git отказывается сбрасывать?
У меня и моих коллег ужасные проблемы с получением 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 ответа
Проблема с этими настройками, как показано в руководстве GitHub, заключается в том, что автоматическое преобразование выполняется во время проверки хранилища...
Это означает, что вам не нужно открывать файл, чтобы вызвать какие-либо изменения.
Разве невозможно сохранить autocrlf
в false, и открыть эти файлы Windows в редакторах, способных учитывать символы обратной строки?
Обратите внимание ( здесь показано), если вам нужно преобразование, за исключением некоторых файлов, вы можете добавить.gitattributes в родительский каталог с помощью:
myFile -crlf
В файле вы устанавливаете атрибуты для пути (или шаблона) или сбрасываете их (со знаком минус).crlf
Атрибут - это атрибут, который сообщает, влияет ли файл на core.autocrlf
опции. Если вы отключите его, Git не будет связываться с окончаниями строк в файле
Чтобы решить эту проблему на моем компьютере с Windows 7 с помощью git 1.7.3.1, мне пришлось установить для параметра core.filemode значение false.
git config -e --local