工作中,同時使用Git for windows和SourceTree,SourceTree主要用來看日志,分支和文件改動這些,還是挺方便的。
其中,SourceTree有個挺好用的功能就是一個文件的改動,會按照改動區域進行分塊組織列出,這樣我們可以對某個塊進行提交和丟棄(不知道用Git命令是否也能實現這種功能?),這是一個很不錯的功能,實踐中也比較常用。
但是,今天遇到一個問題,把文件的某個塊改動丟棄之后,發現整個文件都顯示被改動了,仔細一看,文件內容其實還是之前的內容,一下反應過來,應該是換行符之類的空白字符改動所致。
用BeyondCompare一對比,果然,文件整個被從Windows的換行符改成了Unix的換行符,所以顯示文件被全部改動,但是代碼又沒發生變化。
用其他文本編輯器把文件全部轉回Windows的換行符,果然,一切恢復正常。
這應該是Source Tree的一個bug,因為找遍了Source Tree的設置項,也沒看到和換行符相關的一些設置,這里記錄下,看來后續使用Source Tree的丟棄功能的時候要小心些。