2016-01-11 2 views
0

Проблема достаточно проста. Git говорит я добавил CR (^M) в файл,Git говорит, что добавляю '^ M', но core.autocrlf is true

[email protected] MINGW64 /c/workspace/service (develop) 
$ git diff --check 
engine/src/main/java/someFile.java:18: trailing whitespace. 
+import some.java.package;^M 

, но у меня есть core.autocrlf значение ИСТИНА.

[email protected] MINGW64 /c/workspace/service (develop) 
$ git config --get core.autocrlf 
true 

Я еще не сталкивался с этой проблемой и не уверен, что ее вызывает. У меня всегда был core.autocrlf, установленный в true, и он никогда не жаловался на добавление ^M до сих пор.


Вот выход git config --list с некоторой личной информации, графический интерфейс настройки и настройки ветви удалены только в случае, если это необходимо.

core.symlinks=false 
core.autocrlf=true 
core.fscache=true 
color.diff=auto 
color.status=auto 
color.branch=auto 
color.interactive=true 
pack.packsizelimit=2g 
help.format=html 
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt 
sendemail.smtpserver=/bin/msmtp.exe 
diff.astextplain.textconv=astextplain 
rebase.autosquash=true 
push.default=simple 
core.autocrlf=true 
core.pager=less -x4 
core.trustctime=false 
core.editor=vim 
core.filemode=false 
alias.hist=log --pretty=format:'%ad %C(yellow)%h%C(reset) %s %C(yellow)%an%C(reset)' --date=short 
alias.logo=log --oneline 
alias.superlog=log --decorate --graph 
alias.superlogo=log --decorate --graph --oneline 
alias.dry-merge=merge --no-commit --no-ff 
gui.recentrepo=C:/sts-workspace/kba-service 
merge.tool=vimdiff 
merge.conflictstyle=diff3 
mergetool.prompt=true 
mergetool.keeptemporaries=false 
mergetool.keepbackups=false 
mergetool.trustexitcode=false 
diff.tool=vimdiff 
difftool.prompt=true 
color.ui=true 
credential.helper=cache --timeout=3600 
core.repositoryformatversion=0 
core.filemode=false 
core.bare=false 
core.logallrefupdates=true 
core.symlinks=false 
core.ignorecase=true 
core.hidedotfiles=dotGitOnly 
core.logallrefupdates=true 
core.symlinks=false 
core.ignorecase=true 
core.hidedotfiles=dotGitOnly 
+0

Как вы проверили файл? с каких ОС? – CodeWizard

+0

@codeWizard Я нахожусь в Windows, используя Git-for-Windows. Я проверил это с помощью 'git checkout develop'. –

+0

Вы пытались обновить репо после изменения конфигурации? https://help.github.com/articles/dealing-with-line-endings/#refreshing-a-repository-after-changing-line-endings – Rabea

ответ

0

По причине, почему это внезапно принято делать, есть 2 возможности.

  1. Или есть что-то конкретное в файле атрибутов РЭПО, что изменилось
  2. Там что-то там с линией, которая имеет окна в стиле конца строки, так что решил по умолчанию этому стилю.

Конфигурация для окон может быть сукой и является более сложной задачей, чем linux/mac, но это не неуправляемо.

Я просто покажу вам свою собственную конфигурацию (win 7/mingwin), и вы сможете найти то, что я сделал довольно легко. Я специально потратил около полудня на то, чтобы исследовать это изначально, потому что я-то вроде OCD, так что я мог быть уверен, что окончание строк всегда было преобразовано в unix-based (LF) при фиксации.

C:\Program Files (x86)\Git\etc\gitconfig 
[core] 
    autocrlf = false 

C:\Program Files (x86)\Git\etc\gitattributes 

* text=auto 

Примечание Вы, вероятно, следует искать как конфиг атрибуты GIT по умолчанию, которые также могут быть установлены на основе каждого проекта, если потребности быть. Я использую web один из этих useful templates, но ваши собственные потребности могут отличаться.


C:\Users\BAXTER\.gitconfig 

[core] 
    eol = lf 

P.S. Вероятно, это дублирование в некоторой степени this

+0

О, а также вам нужно будет совершить фиксацию, если вы хотите повторно проиндексировать все окончания строки (см. Ответы хроникалов на дубликат). –

Смежные вопросы