使用git一段時間了,還是會遇到一些問題,這裡作一總結,後續有新問題了補充。
在送出資訊中輸入中文後出錯
現象
add後commit,在vim中輸入了中文送出資訊,儲存退出時出錯,提示如下:

網上查了一些方法,不好用。于是自己琢磨了一下,測試好用。
分析
.git/COMMIT_EDITMSG
是一個檔案,每次送出時會自動生成。錯誤資訊大意是轉換失敗,大概也就是中文轉換時失敗了。
使用
file
檢視了
.git/COMMIT_EDITMSG
的檔案類型,發現為非utf-8類型。對比了其他項目中能正常送出時的該檔案類型,為utf-8。
于是,我懷疑是本地送出的檔案類型有問題,檢查了送出的所有檔案的類型:
發現在一個子目錄裡有非utf-8格式的檔案,其他檔案都為utf-8。因為這幾個檔案是從Windows上拷貝過來的,忘記修改編碼了。
于是把它們都修改為utf-8格式,再次送出就ok了。中文資訊也能正常顯示。
解決步驟
問題解決了,也就簡單了。
- 所有待送出檔案的類型統一修改為utf-8(可借助編輯器,正常打開後,顯示的編碼為GB2312,另存為選擇utf-8即可)
- add後再次送出,輸入中文資訊,ok
此時檢視
.git/COMMIT_EDITMSG
的檔案類型,也為utf-8了。
從Windows拷貝檔案到linux後,經常會出現編碼不一緻的情況。此時,要先修改編碼,另存後再修改檔案内容,否則可能導緻之前的中文内容全部亂碼,再恢複就麻煩了。