`../../.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/위에 두 개의 디렉토리 가 있다는 것입니다..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/.

관련 정보