2017-01-11 21 views
1

Gitリポジトリにいくつかのソースファイル、main.cなどがあります。私はVimを使ってこれらのファイルを編集します。なぜGitは自分のファイルに書き込みますか?

私はmain.cと編集しています。私は変更を加え、Vimに書き出しを指示してから、ターミナルに切り替え(Vimを強制終了せずに)、コミット/プッシュします。どのようにコミットん

WARNING: The file has been changed since reading it!!! 
Do you really want to write to it (y/n)? 

/私のソースファイルを変更するプッシュ:私はmain.cバックのVimに行くと書き込みアウトして再度試している場合、私はこの警告を受けますか?どうして?

答えて

1

許可の問題(ファイルの実行可能ビットを変更するgit)が原因である可能性があります。
git config core.filemode falseの後にもう一度お試しください。

解決策は簡単です:ファイルを:e filenameで再度開きます。
(ファイルが保存され、現在の変更がない場合)、:bufdo eを実行すると、すべてのバッファがVimに再オープンされます。

0

あなたの.gitattributesファイルを表示できますか?行末を変更するように指示していますか?

なぜdiffを実行し、違いが何であるか私たちに教えてください。

+0

私は '.gitattributes'ファイルを持っていません。 –

+0

大丈夫、差を教えてください – jbu

+0

差異はどのようにしたらわかりますか? –

0

他の回答は、Gitが行末の変更を実行しているか、設定された属性を展開していることが原因であることを示しています。簡単な解決策は、自動的にファイル更新するため、

Vimの中
:set autoread 

にある(あなたのユースケースに基づく限り、あなたはそれを変更していないように、可能性は低いと思われます)。

'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. 
関連する問題