開発したアプリなど一覧

git をファイルパーミッションの変更を無視して利用する

記事内にアフィリエイトリンクを含む場合があります

WSL のターミナルから Windows 側においてあるプロジェクトで git status を確認したところ大量に更新があると表示され、不思議に思い git diff を行うと以下のようにファイルのパーミッションが変わっていると大量に出てきた。

$ git diff diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/Capfile b/Capfile old mode 100644 new mode 100755 diff --git a/Gemfile b/Gemfile old mode 100644 new mode 100755 (以下略)

ファイルのパーミッションを変えた記憶は無いが、Windows と Linux ではファイルのアクセス権周りの挙動が異なるようだ。パーミッションが違うからといって以下のように chmod しても Windows のファイルには反映されない。

$ ls -al .gitignore -rwxrwxrwx 1 ryomatsu ryomatsu 585 Jun 27 17:26 .gitignore* $ chmod 644 .gitignore $ ls -al .gitignore -rwxrwxrwx 1 ryomatsu ryomatsu 585 Jun 27 17:26 .gitignore*

手っ取り早くこの状態を解決するには git でパーミッションを無視するよう設定を変えると良い。

$ git config core.filemode false $ git diff $ git status On branch master Your branch is up to date with 'origin/master'.

これでファイルのパーミッションを無視して git を利用できる。

Sponsored Link

コメント

タイトルとURLをコピーしました