[英]Why does Git write to my files?
我在 Git 存儲庫、 main.c
和其他一些源文件中有一些源文件。 我使用 Vim 來編輯這些文件。
假設我正在編輯main.c
。 我進行了更改,告訴 Vim 寫出,然后切換到終端(不殺死 Vim)並提交/推送。 如果我使用main.c
返回 Vim 並嘗試再次寫出,我會收到以下警告:
WARNING: The file has been changed since reading it!!!
Do you really want to write to it (y/n)?
提交/推送如何修改我的源文件? 為什么?
這可能是一個權限問題(git 更改了文件的可執行位)。
在git config core.filemode false
后重試。
解決方案很簡單:使用:e filename
重新打開:e filename
。
或者(如果您的文件已保存並且當前沒有修改),運行:bufdo e
,這將使 Vim 重新打開每個緩沖區。
你能告訴我們你的 .gitattributes 文件嗎? 你是在告訴它改變行尾嗎?
你為什么不嘗試做一個差異並向我們展示差異是什么。
其他答案表明寫入可能是由於 Git 執行行結束更改或擴展配置的屬性。 一個簡單的解決方案是
:set autoread
在 Vim 中,自動更新文件(只要您沒有更改它,根據您的用例似乎不太可能)。
'autoread' 'ar' boolean (default off) When a file has been detected to have been changed outside of Vim and it has not been changed inside of Vim, automatically read it again.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.