天天看點

git送出中文資訊報錯

使用git一段時間了,還是會遇到一些問題,這裡作一總結,後續有新問題了補充。

在送出資訊中輸入中文後出錯

現象

add後commit,在vim中輸入了中文送出資訊,儲存退出時出錯,提示如下:

git送出中文資訊報錯

網上查了一些方法,不好用。于是自己琢磨了一下,測試好用。

分析

.git/COMMIT_EDITMSG

是一個檔案,每次送出時會自動生成。錯誤資訊大意是轉換失敗,大概也就是中文轉換時失敗了。

使用

file

檢視了

.git/COMMIT_EDITMSG

的檔案類型,發現為非utf-8類型。對比了其他項目中能正常送出時的該檔案類型,為utf-8。

于是,我懷疑是本地送出的檔案類型有問題,檢查了送出的所有檔案的類型:

git送出中文資訊報錯

發現在一個子目錄裡有非utf-8格式的檔案,其他檔案都為utf-8。因為這幾個檔案是從Windows上拷貝過來的,忘記修改編碼了。

于是把它們都修改為utf-8格式,再次送出就ok了。中文資訊也能正常顯示。

解決步驟

問題解決了,也就簡單了。

  • 所有待送出檔案的類型統一修改為utf-8(可借助編輯器,正常打開後,顯示的編碼為GB2312,另存為選擇utf-8即可)
  • add後再次送出,輸入中文資訊,ok

此時檢視

.git/COMMIT_EDITMSG

的檔案類型,也為utf-8了。

從Windows拷貝檔案到linux後,經常會出現編碼不一緻的情況。此時,要先修改編碼,另存後再修改檔案内容,否則可能導緻之前的中文内容全部亂碼,再恢複就麻煩了。