Git 전역 무시 작동하지 않음 : git config –global

파일을 생성하여 .gitignore_globalgit 설치 디렉토리에 넣었습니다. 명령을 실행할 때 :

git config --global core.excludesfile ~/.gitignore

무시 파일의 규칙이 내 커밋에 적용되지 않습니다.

파일 이름을 바꾸고 .gitignore프로젝트 루트에 넣으면 규칙이 적용됩니다.

여기서 무엇이 잘못 되었습니까?



답변

다음을 수행해야 할 수도 있습니다.

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

그리고 커피를 마시기 위해.


답변

내가 이것에 칩을 넣을 것이라고 생각했습니다. 전역 무시 파일이 작동하지 않는 것처럼 보이는 또 다른 이유가 있습니다. 이전 답변에서 다루지 않았다고 생각합니다. 그것은 너무나도 명백해서- 물론 -놓치기가 매우 쉽습니다.

즉, git 은 새 파일 만 무시합니다 . 파일이 이미 git에 의해 추적되고 있다면 물론 git은 그것을 무시하지 않을 것입니다! 따라서 any gitignore또는 exclude파일의 모든 패턴이 적용되지 않습니다 .

말이 되네요. 왜 git은 이미 추적중인 파일의 수정 사항을 무시하고 싶습니까? 파일을 무시하려면 먼저 git에게 추적하지 말라고 지시 한 다음 매뉴얼에 설명 된대로 무시해야합니다. 파일 추적 해제 방법에 대한 정보는 이 답변을 참조하십시오 .

이 모든 것이 저에게 묻습니다. 추적 된 파일의 변경 사항을 무시할 수 있습니까? 다시 말하지만 git은 제공합니다. 이 대답; Git : Ignore tracked files 는 다음 명령을 제공합니다 ( file무시할 파일로 대체 ).

git update-index --assume-unchanged file

마지막으로 git ignore 디버깅에 대한 추가 정보가 있습니다.

gitignore (5) 매뉴얼 페이지는 우리에게 알려줍니다 :

사용자가 모든 상황에서 Git이 무시하기를 원하는 패턴 (예 : 사용자가 선택한 편집기가 생성 한 백업 또는 임시 파일)은 일반적으로 사용자의 ~ / .gitconfig에있는 core.excludesfile에 지정된 파일로 이동합니다. 기본값은 $ XDG_CONFIG_HOME / git / ignore입니다. $ XDG_CONFIG_HOME이 설정되지 않았거나 비어 있으면 대신 $ HOME / .config / git / ignore가 사용됩니다.

따라서 이것은 새로운 것이며 이전에 ~/.gitignore_global언급 한 것을 대체합니다 .

다음으로, 이것은 정말 유용합니다. 1.8.2부터는 훌륭한 디버깅 도구가 있습니다. 보세요 :

Git이 더 잘 무시하는 법을 배웁니다-1.8.2의 새로운 기능

이것은 새 check-ignore플래그를 사용하여 git이 패턴을 성공적으로 무시하는지 확인하는 방법을 보여줍니다.

git check-ignore bin/a.dll --verbose


답변

다음 global core.excludesfile과 같이 정의했을 때 발견했습니다 .

git config --global core.excludesfile $HOME/.config/git/ignore

작동하지 않았습니다. 다음 $HOME과 같이 변수를 사용하지 않도록 변경합니다 .

git config --global core.excludesfile ~/.config/git/ignore

즉시 작동하기 시작했습니다. 이것이 다른 사람에게 도움이되기를 바랍니다.

참고 :

$ git --version
git version 1.7.10.2 (Apple Git-33)

답변

참고 : git1.7.12 (2012 년 8 월)부터 :

의 가치:

  • core.attributesfile 기본값은 $ HOME / .config / git / attributes이고
  • core.excludesfile$HOME/.config/git/ignore이러한 파일이 존재할 때 기본값은 각각입니다.

따라서 $HOME/.config/git/attributes파일 을 만들면 core.excludesfile설정 을 지정할 필요도 없습니다 .


답변

파일은 홈 디렉토리에 있어야합니다. Windows에서는 일반적으로 C : \ documents and settings \ [user]를 의미합니다.

Linux에서는 / home / [user]입니다.


답변

처음에 –global없이 잘못된 값으로 ‘git config core.excludefiles’를 호출했기 때문에이 문제가 발생하여 속성을 로컬에 저장했습니다. 지역 속성이 (올바른 값을 가진) 전역 속성을 숨기고 완전히 무시한 것처럼 보입니다.


답변

전역 git ignore가 작동하지 않는 또 다른 이유는 경로에 보이지 않는 문자입니다.

난 단지에서 경고 메시지를 붙여 넣을 때이 내 문제였다 발견 -무시 자식 검사를 가 크롬의 주소 표시 줄에 운이 좋게 볼되었다 :

(단말기에서는 보이지 않았습니다. 그리고 이것은 디버깅 의 토끼 구멍이었을 것입니다 … ?)