Techioz Blog

VScode、WSL、Ruby、コミット時に変更済みとしてマークされるファイル

概要

私はRubyのWSL上で実行されるVScodeに取り組んでいます。コミットするたびに 8 つのファイルが変更済みとしてマークされますが、それらを比較しようとしても変更は表示されません。私の上司である兄は、VScode がこれらのファイルのアクセス許可を変更していると考えており、それが懸念されています。

8つのファイルは次のとおりです。

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   bin/bundle
        modified:   bin/dev
        modified:   bin/rails
        modified:   bin/rake
        modified:   bin/rubocop
        modified:   bin/rubycritic
        modified:   bin/setup
        modified:   release-tasks.sh

これらのファイルは絶対に変更したくありません。私の役割は、CSS とフロントエンドのビューに焦点を当てることです。

質問は

  1. 変更内容を確認する方法はありますか?
  2. VScode がそれらを変更済みとしてマークしないようにする方法、あるいはできれば変更しない方法はありますか?

編集2309071405

コメントへの返信として、以下の git diff の結果を示します。許可があるようです。

fleetwoodn@DESKTOP-GSMDGGD:~/MyChange2$ git diff
diff --git a/bin/bundle b/bin/bundle
old mode 100755
new mode 100644
index b6d1327..156453a
--- a/bin/bundle
+++ b/bin/bundle
@@ -1,124 +1,124 @@
-#!/usr/bin/env ruby
-# frozen_string_literal: true
-
-#
:

解決策

VSCode は、あなたが言及したファイルのアクセス許可を実際に変更しているようです。提供した git diff 出力は、ファイル bin/bundle がモード 100755 からモード 100644 に変更されたことを示しています。これは、ファイルのアクセス許可が実行可能から読み取り専用に変更されたことを意味します。

次の行を .gitignore ファイルに追加して、VSCode が指定したファイルのアクセス許可を変更しないようにすることができます。

bin/*

VSCode によるこれらのファイルのアクセス許可の変更を防ぐもう 1 つの方法は、gitattributes ファイルを使用することです。 gitattributes ファイルは、ファイルのアクセス許可などのファイルの属性を指定するファイルです。次の行を gitattributes ファイルに追加して、VSCode が指定したファイルのアクセス許可を変更しないようにすることができます。

* -executable

最後に、VSCode でファイル ウォッチャーを無効にすることもできます。ファイル ウォッチャーは、ファイルへの変更を検出し、Git ステータスを更新する責任があります。ファイル ウォッチャーを無効にするには、VSCode 設定を開き、「ファイル ウォッチャー」を検索します。次に、「ファイルウォッチャーを有効にする」の横にあるチェックボックスをオフにします。

これらの手順のいずれかを実行すると、VSCode は、指定したファイルのアクセス許可を変更しなくなります。