【Git】ファイルのパーミッション変更を無視する

git_branchWeb開発

皆さん、こんにちは!

本日は、Gitについてです。

えーとですね。。私の開発環境・gitの設定のせいだと思うんですが。

先日、なにも変更していないファイルが突如更新されたファイルとしてSource treeに表示されまして。。

しかも、破棄(Discard)してもなにもおこらないという現象が起こりました。

今回はそれについて書こうかと思います。

(ベストプラクティスではないです、すみません!)

環境

以下、環境情報です。

HostOS: Windows10
VM: CentOS Linux release 7.9.2009 (Core)

この環境で、gitコマンドをHostOSのwindows上で実行し、ファイル管理をしている。

そのgitで管理しているディレクトリをVMで共有ファルダとして使用している。

といった状況です。

起こった現象

起こった現象をまとめますと。

  • git pullの後、なにも更新していないファイルが突如、更新されたファイルとしてSource treeに表示されるようになった。
  • 変更を破棄(Discard)してもなにも変わらない。破棄されない。

といったことがありました。

原因

Githubにpushした際に、わかったのですが。。

ファイルのパーミッションが変わっていました。

git pullする際に、環境によっては自動で変わってしまうことがあるようです。

解決策

これを放置しておいて、

commitするときに、いちいちそのファイルがあるのも嫌なので。。

ファイルのパーミッション変更を無視できないのかを調べてみたところ、見つかりました。

以下でOK。

git config core.filemode false

実行後、Source treeからそのファイルが見えなくなったので問題解決!

しかし、以下参考リンクにもベストプラクティスではないと書いてありますね。。

なにか別途よい方法はないんでしょうか。。

では、また!

参考

【Git】ファイルパーミッションの変更(chmod)を無視する方法 - Qiita
Linux と Windows ではファイルのパーミッションの扱いが異なるので、 Linux で作成したスクリプトファイル(パーミッション:0755)を、 Windows でgit diffしたときに、パーミッションが0644に変わっ...
How do I make Git ignore file mode (chmod) changes?
I have a project in which I have to change the mode of files with chmod to 777 while developing, but which should not change in the main repo. Git picks up on c...
タイトルとURLをコピーしました