3 回答

TA貢獻1783條經驗 獲得超4個贊
GitHub建議您確保在git處理的存儲庫中僅使用\ n作為換行符。有一個自動轉換選項:
$ git config --global core.autocrlf true
當然,據說這是將crlf轉換為lf,而您想將crlf轉換為lf。我希望這仍然有效...
然后轉換文件:
# Remove everything from the index
$ git rm --cached -r .
# Re-add all the deleted files to the index
# You should get lots of messages like: "warning: CRLF will be replaced by LF in <file>."
$ git diff --cached --name-only -z | xargs -0 git add
# Commit
$ git commit -m "Fix CRLF"
手冊頁中介紹了 core.autocrlf 。

TA貢獻1851條經驗 獲得超5個贊
在Windows上進行開發時,使用時遇到了這個問題git tfs
。我是這樣解決的:
git config --global core.whitespace cr-at-eol
這基本上告訴Git行尾CR并不是錯誤。其結果是,那些煩人的^M
字符不再出現在線路末端git diff
,git show
等等。
似乎保留了其他設置。例如,行尾的多余空格仍會在差異中顯示為錯誤(以紅色突出顯示)。
(其他答案都暗示了這一點,但是以上正是設置設置的方法。要僅為一個項目設置設置,請省略--global
。)
編輯:
在經歷了許多行尾麻煩之后,在.NET團隊中工作時,我有以下設置是最幸運的:
沒有core.eol設置
沒有core.whitespace設置
沒有core.autocrlf設置
當運行Windows的Git安裝程序時,您將獲得以下三個選項:
簽出Windows風格,提交Unix風格的行結尾 <-選擇這一行
按原樣簽出,提交Unix樣式的行尾
按原樣簽出,按原樣提交
如果需要使用空格設置,則可能需要在與TFS進行交互時僅在每個項目中啟用它。只需省略--global
:
git config core.whitespace cr-at-eol
如果您需要刪除一些core。*設置,最簡單的方法是運行以下命令:
git config --global -e
這將在文本編輯器中打開全局.gitconfig文件,您可以輕松刪除要刪除的行。(或者,您也可以在它們前面加上“#”以將其注釋掉。)

TA貢獻1820條經驗 獲得超2個贊
另請參閱:
core.whitespace = cr-at-eol
或等效地,
[core]
whitespace = cr-at-eol
其中whitespace以制表符開頭。
- 3 回答
- 0 關注
- 1963 瀏覽
添加回答
舉報