簡體   English   中英

為什么 Git 會寫入我的文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM