4
我一直在使用autocrlf設置爲true的git。我一直通過cygwin與git-svn一起使用它。這一直導致我的一堆問題,我看到here和here,我應該關掉它。我怎樣才能「恢復幹線和主人之間的損害」?如何撤消autocrlf的破壞?
我一直在使用autocrlf設置爲true的git。我一直通過cygwin與git-svn一起使用它。這一直導致我的一堆問題,我看到here和here,我應該關掉它。我怎樣才能「恢復幹線和主人之間的損害」?如何撤消autocrlf的破壞?
如果你只是想解決它在一個單一的提交,然後息事寧人,你可以這樣做:
find . -not \(-path ./.git -prune \) -type f -exec sed -i -e 's/\r//g' {} +
注意:這將從刪除CR的每一個文件存儲庫中的。在-type f
之後添加-name '*.someext'
或其他子句以調整搜索範圍。
如果要編輯之前提交(注意,這會破壞其他人試圖自己的修改合併到分支!),你可以使用git filter-branch
- 編寫一個腳本,它類似於上面的find
調用的東西,然後通過它與類似的東西
git filter-branch --tree-filter /full/path/to/myscript.sh master otherbranch
這將重寫歷史記錄,消除任何曾經在源代碼庫中的CR。請注意,如果你在git-svn創建的任何提交中運行它,這可能會破壞git-svn。你可以使用像trunk..mylocalbranch
這樣的東西只在本地提交時運行它。