我可以讓git將UTF-16文件識別為文本嗎?我在git中跟蹤虛擬PC虛擬機文件(* .vmc),在進行更改后,git將該文件識別為二進制文件并且不會為我進行區分。我發現該文件是用UTF-16編碼的??梢越蘥it識別這個文件是文本并適當處理它嗎?我在Cygwin下使用git,core.autocrlf設置為false。如果需要,我可以在UNIX下使用mSysGit或git。
3 回答

MM們
TA貢獻1886條經驗 獲得超2個贊
我一直在努力解決這個問題,并且剛剛發現(對我來說)一個完美的解決方案:
$ git config --global diff.tool vimdiff # or merge.tool to get merging too!
$ git difftool commit1 commit2
git difftool采用相同的參數git diff,但運行你選擇的diff程序而不是內置的GNU diff。因此,選擇一個多字節識別差異(在我的情況下,vim在diff模式下),而只是使用git difftool而不是git diff。
找到“difftool”太長,無法輸入?沒問題:
$ git config --global alias.dt difftool
$ git dt commit1 commit2
Git巖石。

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
git最近開始理解utf16這樣的編碼。請參閱gitattributes文檔,搜索working-tree-encoding
[確保您的手冊頁匹配,因為這是一個全新的!]
如果(比方說)文件是在Windows機器上沒有bom的utf-16那么添加到你的gitattributes文件
*.vmc text working-tree-encoding=UTF-16LE eol=CRLF
如果* nix上的utf-16(帶有bom)就可以了
*.vmc text working-tree-encoding=UTF-16 eol=LF
- 3 回答
- 0 關注
- 1044 瀏覽
添加回答
舉報
0/150
提交
取消