2014-02-22 60 views
1

我試圖在Windows上構建單,但.SH文件提供了有關回車錯誤:從單聲道github修復行結束?

$ ./autogen.sh --host=i686-pc-mingw32 --profile=/usr/opt 
./autogen.sh: line 4: $'\r': command not found 
./autogen.sh: line 6: $'\r': command not found 
./autogen.sh: line 9: $'\r': command not found 

的.gitattributes文件有這一行({CR:

*.sh crlf 

我可以編輯和刪除的CR,但後來當我嘗試做一個復位,這樣它會吹走本地文件和reget從原產地文件時,gitattributes也被吹走:

git fetch origin master 
git reset --hard FETCH_HEAD 

看着單聲道存儲庫,他們有這樣的.gitattributes,但沒有任何生成說明解決此問題。

在windows上構建單聲道時,處理行尾的正確方法是什麼?當然我不應該在每次拉動之後手動運行dos2unix?

回答

2

請確保您有

git config --global core.autocrlf false 

這將避免做(除了在.gitattributes指令)全球轉換

我可以編輯和刪除CR

是,但是您需要首先添加並提交,之前正在執行:

git rm --cached -r . 
git reset --hard 

否則,.gitattributes將恢復到其以前的狀態。

+0

感覺奇怪的是必須做出這樣的改變,但我會接受你的話。爲什麼他們會以這種方式配置.sh文件?看起來CR會破壞Linux和Windows上的* .sh。 – AaronLS

+0

@AaronLS我同意:爲什麼所有文件的'sh'上都有'crlf'?這似乎很奇怪。 – VonC

+0

我提交了.gitattributes並刪除了.sh文件並進行了重置,但仍使用CRLF。然後,我做了 - 全局更改並重新設置,那時它只有LF。我認爲.gitattribute會是一個更專業的設置,從而覆蓋全球。如果一個項目需要它設置一種方式,另一種需要另一種方式會吸引人:/ – AaronLS