如何设置 `.gitignore` 以便将 `../../.aws/` 从 `git status` 输出中排除?

如何设置 `.gitignore` 以便将 `../../.aws/` 从 `git status` 输出中排除?

我的.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

我应该如何更改 my.gitignore以便将 the ../../.aws/will 从输出中排除git status

答案1

.gitignore文件适用于所在目录及其子目录下的文件。它不适用于父目录或其其他子目录。您试图忽略,它是您的文件所在位置../../.aws/上方的两个目录。.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/

相关内容