git提交中出現沒有變化的檔案

junwind發表於2021-11-15

我使用protoc編譯時生成php類檔案時

protoc --php_out=xxx xxx.proto xxx.proto ...

出現了一下類似錯誤
git提交中出現沒有變化的檔案
可以看到,這些檔案都是沒有變化的,那為什麼會出現這種情況呢?

我使用 cat -A file.proto 檢視檔案的內容和所有特殊符號,對比之前的檔案內容,和protoc編譯生成後的內容;
果然,發現多了 ^M , 經過查詢,是 LFCRLF 的問題導致的;也就是Linux和windows檔案換行符的不同;

  1. 先將之前生成的php類檔案,git commit的未變化的檔案都還原;
  2. 將程式碼編輯器改為預設為 LF , 怎麼改,具體看自己的IDE設定;
  3. 開啟proto檔案,改為LF,我使用的是phpstorm,如下:
    git提交中出現沒有變化的檔案
  4. 此時,proto檔案內容沒有變更,但是會加入到commit中
  5. 我們在git中,將這些commit中的檔案還原一下,再次切換到編輯器中檢視,發現檔案是LF了,並且也不會在commit中了;
  6. 再次執行之前的protoc 編譯生成命令; 生成的php類檔案,不會再有未變化的存在commit中了;

如果有問題,歡迎德華,彥祖們評論中指出哈

本作品採用《CC 協議》,轉載必須註明作者和本文連結
六月的風

相關文章