2016-01-11 53 views
0

問題很簡單。 Git是說我已經添加CR(^M)到一個文件,Git說我添加'^ M'但core.autocrlf爲真

[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設置爲true。

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

我沒有遇到過這個問題,不知道是什麼原因導致它。我一直有core.autocrlf設置爲真,並且從未抱怨在此之前添加^M


這裏是git config --list提供一些個人信息,GUI設置和分支機構設置,以防它需要刪除的輸出。

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

至於它突然決定這麼做的原因有兩種可能性。

  1. 要麼有具體的回購協議的屬性文件東西是改變
  2. 有什麼東西在那裏有結束,所以它決定默認爲該風格windows風格線路的線路。

配置窗口可以是一個婊子,是方式更麻煩,然後Linux/MAC,但它不是難以管理的。

我就告訴你我自己的配置(勝7/mingwin),你應該能夠搜索到什麼我已經很容易做到。我特意花了大約半天的時間來研究這個問題,因爲我剛剛有點強迫症,所以我可以肯定,在提交時,行結束總是被轉換爲基於unix的(LF)。

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

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

* text=auto 

注意你或許應該看看了怎麼配置也可在每個項目的基礎上設置如果需要的話默認的Git屬性。我使用這些useful templates中的一個,但您自己的需求可能會有所不同。


C:\Users\BAXTER\.gitconfig 

[core] 
    eol = lf 

附:這可能是某種程度上的重複this

+0

哦,如果你想重新索引所有的行結束符,你也必須做一個提交(參見chronials在複本上的答案)。 –

相關問題