ディレクトリ内の(特定のタイプの)すべてのファイルへの変更を無視するには、これらのアプローチのいくつかを組み合わせる必要がありました。
以下の "excludedir"は、変更を監視しないディレクトリの名前です。
まず、変更追跡キャッシュから既存の新しいファイルを削除します(ファイルシステムから削除することはありません)。
git status | grep "new file:" | cut --complement -d " " -f1-4 | grep "^excludedir" | xargs git rm --cache
同じことをで行うことができますmodified:
。 新しいファイル名のrenamed:
ポスト->
ビットを確認し、以下で->
説明するdeleted:
ようにプリビットを実行する必要があるため、少し複雑です。
deleted:
ローカルシステムに存在しないファイルのインデックスを更新するようには見えないため、ファイルは少し複雑であることがわかります
echo .deletedfiles >> .gitignore
git status | grep "deleted:" | cut --complement -d " " -f1-4 | grep "^excludedir" > .deletedfiles
cat .deletedfiles | xargs -d '\n' touch
cat .deletedfiles | xargs -d '\n' git add -f
cat .deletedfiles | xargs -d '\n' git update-index --assume-unchanged
cat .deletedfiles | xargs -d '\n' rm
上記のリストの最後のコマンドは、ファイルシステムからファイルを再び削除するため、省略してもかまいません。
次に、そのディレクトリから変更追跡をブロックします
git ls-files excludedir/ | xargs git update-index --skip-worktree
git update index --skip-worktree excludedir/
.csproj
ファイルへの変更を追跡したくない理由に興味があります。これは、プロジェクトの非常に重要な部分です。追跡することなく完全に理解できる.csproj.user
ファイルまたは任意の.Publish.XML
ファイルに対する変更ですが、追跡したくない理由に興味をそそられます.csproj
…