`../../.aws/`が `git status`出力から除外されるように `.gitignore`をどのように設定しますか?

`../../.aws/`が `git status`出力から除外されるように `.gitignore`をどのように設定しますか?

私の.gitignoreファイルはその../../.aws/ディレクトリを無視するように指示します。

$ cat .gitignore
coredumps/
../../.aws/
.*.sw*
*bak
*log

残念ながら、このディレクティブは無視されました。

$ git status | head -6
# On branch main
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       ../../.aws/
#       ../../.bash_history

遺言が出力から除外さ.gitignoreれるようにmyをどのように変更する必要がありますか?../../.aws/git status

答え1

この.gitignoreファイルは、ディレクトリとそのサブディレクトリのファイルに適用されます。親ディレクトリや他の子ディレクトリには適用されません。あなたが無視したいのは、ファイルがある場所の上に../../.aws/2つのディレクトリがあるということです。.gitignore

この問題を解決するいくつかの方法は次のとおりです。

  1. .gitignoreファイルを適切なディレクトリに配置します。.gitignore:そのディレクトリまたはすぐに親ディレクトリにファイルを配置できる場合は、.aws/これを行うことができます。この.gitignoreファイルは、ディレクトリを無視するエントリを追加します.aws/

  2. .gitignoreグローバルファイルの使用:すべてのGitリポジトリでこれらのファイルを無視するには、グローバル.gitignoreファイルを作成します。

    git config --global core.excludesfile '~/.gitignore_global'
    

    .aws/その後、この~/.gitignore_globalファイルに追加できます。

.aws/以前にGitによって追跡されたファイルがディレクトリにある場合は、Gitがそのファイルを無視し始める前に、リポジトリからそのファイルを削除する必要があります。次のコマンドを使用すると、ファイルのローカルコピーを削除せずにこれを実行できます。

git rm --cached -r .aws/

このコマンドを実行すると、Gitはディレクトリの変更の追跡を停止します.aws/

関連情報