파일을 생성하여 .gitignore_globalgit 설치 디렉토리에 넣었습니다. 명령을 실행할 때 :
git config --global core.excludesfile ~/.gitignore
무시 파일의 규칙이 내 커밋에 적용되지 않습니다.
파일 이름을 바꾸고 .gitignore프로젝트 루트에 넣으면 규칙이 적용됩니다.
여기서 무엇이 잘못 되었습니까?
파일을 생성하여 .gitignore_globalgit 설치 디렉토리에 넣었습니다. 명령을 실행할 때 :
git config --global core.excludesfile ~/.gitignore
무시 파일의 규칙이 내 커밋에 적용되지 않습니다.
파일 이름을 바꾸고 .gitignore프로젝트 루트에 넣으면 규칙이 적용됩니다.
여기서 무엇이 잘못 되었습니까?
답변:
다음을 수행해야 할 수도 있습니다.
git config --global core.excludesfile ~/.gitignore_global
그리고 커피를 마시기 위해.
gitignore파일은 이전에 추가 된 파일이 아닌 추적되지 않은 파일에 대해서만 작동합니다
내가 이것에 칩을 넣을 것이라고 생각했습니다. 전역 무시 파일이 작동하지 않는 것처럼 보이는 또 다른 이유가 있습니다. 이전 답변에서 다루지 않았다고 생각합니다. 그것은 너무나도 명백해서- 물론 -놓치기가 매우 쉽습니다.
즉, 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
git update-index --assume-unchanged file내가 찾던 바로 그 것이었다, 고마워!
다음 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설정 을 지정할 필요도 없습니다 .
전역 git ignore가 작동하지 않는 또 다른 이유는 경로에 보이지 않는 문자입니다.
난 단지에서 경고 메시지를 붙여 넣을 때이 내 문제였다 발견 -무시 자식 검사를 가 크롬의 주소 표시 줄에 운이 좋게 볼되었다 :
(단말기에서는 보이지 않았습니다. 그리고 이것은 디버깅 의 긴 토끼 구멍이었을 것입니다 ... 😅)
또한이 파일의 인코딩에 대해 재미있는 일이있었습니다. 어떻게 든 내 Windows 10 (Powershell 포함)이 "UTF-16 LE"인코딩으로 파일을 만들었고 어떻게 든 Git이 이것을 처리하지 못했습니다. 인코딩을 문자 그대로 다른 것보다 훨씬 더 합리적인 값으로 변경하면 작동했습니다.