我只是完成轉換的Subversion倉庫使用從SVN遷移到git後,如何修復行結束問題?
git svn clone--stdlayout --authors-file=ourcommitters.txt svn://svn.internalserver.com
這樣做雖然Git裏,我有git的標誌「core.autocrlf」設置爲「真」 - 只是在重要的情況下。
經過很長時間,命令完成。我清理了一下所產生的git倉庫(刪除無用的分支,創建標籤等),現在一切都看起來非常好,並且運行良好。該存儲庫託管在Linux機器上,並將其克隆到其他Linux機器上工作得非常好。
但是,我注意到一個問題:在將存儲庫克隆到Windows框中時,某些文件在切換分支時似乎被修改。舉例來說,我這樣做:
git clone svn://our.git.server/foo
git status # Everything is clean
git checkout -t origin/maintenance # Switch to maintenance branch
git status # Everything is clean
git checkout master # Back to master branch
git status # A few files are modified!
當執行「git的差異」,我注意到,修改後的文件似乎只是他們的行結尾不同。在研究這一點時,我們注意到這些文件在Subversion中使用CR-LF行結尾(而不是LF行結尾)進行了意外檢查,並且此錯誤已轉換爲我們的git存儲庫。
有沒有辦法解決這個問題在我們的存儲庫(迄今爲止,它不經常被克隆,所以一些歷史重寫將罰款),而不做'清理提交'之類的?也許我們可以以某種方式默默地重寫受影響的對象?
或者,我們可以在Subversion中修復 - 然後再次發出上面的'git svn clone'命令。這似乎增量式工作(它只會選擇最後一行結束脩復提交),但是又一次 - 它創建一個提交。我想知道我是否可以解決這個問題。
我從來沒有用'混帳svn'工作,但看看這個問題: http://stackoverflow.com/questions/1575682/cant-seem-to-discard-changes-in-git –