Git은 gitignore에없는 파일을 무시합니다.


117

이미지 파일과 몇 가지 다른 파일을 무시하는 git 저장소가 있지만 내 .gitignore파일에는 파일이 무시 config.php됩니다. 찾을 수없는 어딘가에 전역 무시 파일이 있습니까? 지금 추가 할 파일을 지정해야하는데 다음과 같은 경고가 표시됩니다.

다음 경로는 .gitignore 파일 중 하나에서 무시됩니다.

~/.gitconfig파일 의 내용은 내 이메일 주소뿐입니다.


답변:


198

git check-ignore

git check-ignore명령 을 사용 하여 gitignore 파일을 디버그하십시오 (파일 제외).

예를 들면 :

$ git check-ignore -v config.php
.gitignore:2:src    config.php

위의 출력은 주어진 각 경로 이름 (줄 포함)에 대해 일치하는 패턴 (있는 경우)에 대한 세부 정보입니다.

따라서 파일 확장자는 무시되지 않고 전체 디렉토리입니다.

반환되는 형식은 다음과 같습니다.

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>

또는 다음 명령을 사용하여 .gitignore사용자 홈 및 저장소 폴더 를 인쇄하십시오 .

cat ~/.gitignore "$(git rev-parse --show-toplevel)"/.gitignore "$(git rev-parse --show-toplevel)"/.git/info/exclude

또는 git add -f무시 된 파일을 추가 할 수있는 사용.

참조 : man gitignore, man git-check-ignore자세한 내용은.

통사론

git check-ignore [옵션] 경로명…

git check-ignore [옵션] --stdin


5
이것은 받아 들인 대답보다 훨씬 낫습니다. 그 사람에 대한 불쾌감은 없지만 이것은 내 하루를 구했습니다. kenorb 감사합니다.
luanjunyi

1
더 많은 찬성 투표가 필요합니다. 일부 / vendor / 폴더의 이상한 gitignore가 최신 git 버전에서 문제를 일으킨다는 것을 발견했습니다.
Manuel Arwed Schmidt 2015 년

2
이것은 오늘 저를 구했습니다 ... Visual Studio가 사용자 문서 폴더에 gitignore_global.txt라는 파일을 생성 한 것 같습니다. 그리고 이것은 무시할 수없는 파일을 무시하는 것입니다
Samuel

1
내 문제를 완벽하게 해결했습니다. 어떤 패턴은 눈에 잘 띄지 않습니다 !!
Willa

54

git 구성에 무시되는 추가 패턴이있는 파일의 경로 인 core.excludesfile이 포함될 수 있음을 아는 것이 좋습니다. 다음을 실행하여 이러한 구성이 있는지 확인할 수 있습니다 (문제가있는 git repo에서).

git config core.excludesfile

파일 경로를 인쇄하는 경우 해당 파일의 내용에서 자세한 정보를 확인하십시오.

제 경우에는 'Icon?'패턴을 무시한 이전 버전의 boxen 을 통해 git을 설치했습니다. 내 경우에는이 질문에서 언급 한 폴더 아이콘에 대한 경고를주었습니다 (대소 문자를 구분하지 않는 파일 시스템에있어 Icon?이 아이콘과 일치하는 이유입니다).


2
이것은 정말로 내 문제였습니다. 방법을 잘 모르거나이 파일을 편집하지만 내가 그것을 나열하고 싶었던 파일을했다 때
toxaq

2
고마워요, 당신은 저에게 순수한 고통의 시간을 절약했습니다. 제 경우에는 문서 폴더 아래에 많은 제외를 포함하는 gitignore_global.txt를 비논리적으로 생성 한 소스 트리 (git repo를 시각화하는 도구)를 설치했습니다.
Mechanical Object

나는 똑같은 망할 Icon?무시 당했다.
Justin Skiles 2015

이것이 저의 경우였습니다. 전역 무시 파일 내에 꽤 많은 규칙이 있습니다. 팁 감사합니다 +1
Madness

내 글로벌 무시에 * .json이 있습니다. 악몽에 대해 이야기하세요. 감사합니다!
Jason Perfetto

31

다음을 확인하십시오.

  1. 다른 .gitignore 파일을 찾았습니까? 많은 파일이있을 수 있습니다.

  2. 또한 REPO / .git / config를 살펴보고 거기에 무엇이 있는지 확인하십시오.

  3. 리포지토리 제외 로컬 리포지토리 별 규칙은 리포지토리의 .git / info / exclude 파일에 추가 할 수 있습니다. 이러한 규칙은 리포지토리와 커밋되지 않으므로 다른 사람과 공유되지 않습니다. 이 방법은 편집기에서 생성 한 파일과 같이 다른 사용자가 생성하지 않을 것으로 예상되는 로컬 생성 파일에 사용할 수 있습니다.


저장소에 다른 .gitignore 파일이 없으며 .git / config 파일에 아무것도 무시하는 파일이 없습니다. .git / info / exclude는 어떻게 구성됩니까?
Ian Hunter

4
이 답변이 답변으로 표시되는 이유가 명확하지 않습니다. 이 문제가 정확히 어떻게 해결 되었습니까?
Next Developer

제외는 내 문제였습니다. 나는 과거에 사용했던 무시할 수있는 또 다른 방법이 있다는 것을 알고 있었지만 그것이 어디에 있는지 잊었다!
처키

22

나는 같은 문제가 있었다-디렉토리 가이 오류로 git에 의해 무시되었습니다.

➭ git add app/views/admin/tags/
The following paths are ignored by one of your .gitignore files:
app/views/admin/tags
Use -f if you really want to add them.
fatal: no files added

나는 마침내 내 문제가 내 줄에 있음을 알았습니다 ~/.gitignore_global.

TAGS

경로와 일치했습니다 app/views/admin/tags. 전역 gitignore 파일에 선행 슬래시를 추가하여 수정했습니다.

/TAGS

그리고 git은 내 디렉토리를 다시 추적하기 시작했습니다.


3
부분적으로 일치하는 부분을 찾도록 만드는 +1 ... gitignore_global.txt에 "[Rr] elease * /"가 포함되어있어 "releasenotes"디렉토리가 무시되었습니다.
Trev

더 어렵게 만들기 위해 git은 이미 저장소에있는 파일이 아닌 새로 추가 된 파일 만 무시합니다. 그래서 "foo /"를 .gitignore에 추가했을 때 모든 파일이 아닌 foo 하위 디렉토리에 최근에 추가 된 파일 만 무시했습니다. 일부 파일은 무시되고 다른 파일은 무시되는 이유를 파악하는 데 한 시간이 걸렸습니다.

나도 같은 문제가있어. SourceTree는 도구 메뉴-> 옵션 항목-> Git 탭에서 ~ / .gitignore_global 파일을 설정합니다. 필드를 정리 한 후 Global Ignore list "git add ..."명령이 작동했습니다.
Kate

나는 같은 문제가 있었다. 내가했다 help무시 된 디렉토리를. 다행히도 귀하의 답변을 아주 빨리 찾았습니다.
Abdul Sadik Yalcin

9

나를 위해 실수로 ~ / .gitignore_global 파일에 와일드 카드가 있습니다. 아마 거기 확인?


1
그것은 나에게 정확히 문제였습니다. 나는 거기에 * .png를 가지고 있었는데, 그것이 어떻게 거기에 있는지 전혀 몰랐다.
Shahar

3

또 다른 시도 : .git프로젝트 디렉토리 A 아래에 자체 저장소가 중첩 된 디렉토리 B가 있습니다 (하위 모듈로는 아님). B를 약간 변경하고 보나 피드 하위 모듈로 만들고 싶었습니다. 나는 git A가 자체 저장소를 포함했기 때문에 B를 자동으로 무시한다고 생각합니다 ( 하위 모듈이없는 중첩 된 git 저장소? 참조 ). B 폴더의 이름을 변경하고 하위 모듈로 다시 복제하려고했는데 ".gitignore에 의해 무시 됨"오류 메시지가 잘못 표시되었습니다. 해결책은 .gitB 에서 삭제하는 것입니다.


2

나는 너와 똑같은 문제를 겪고 있었다. 확인해야 할 몇 군데를 나열한 유일한 답장이지만 그들 중 누구도 문제를 해결하지 못했고 귀하의 의견에서도 나는 당신을 위해 생각하지 않습니다. 디렉토리 트리 아래에 숨어있는 다른 .gitignore 파일이 없었습니다. .git / config에 아무것도 없습니다. .git / ingore / exclude에 아무것도 없습니다.

여전히 문제가있는 경우이 답변을 확인 하십시오 . 그것은 나를 위해 문제를 해결했습니다.

기본적으로 ~ / .gitignore 파일을 확인하십시오. 내 이름은 ~ / .gitignore_global입니다. 이 생성 된 때 나는 (모르는 나는 확실히 그것을하지 않았다),하지만 난 그렇게 그 중 하나는이 넣어해야합니다, 제가 처음 설치할 때 다른 자식 설정의 톤이다 시도했다.

그의 대답이 당신에게도 도움이되기를 바랍니다!


1

git에서이 오류 메시지를받는 또 다른 이유 git submodule add는 이전 git 명령이 충돌하여 잠금 파일을 남긴 상태 에서 명령을 실행할 때 입니다 (예를 들어 git 명령을 포함하는 사용자 지정 스크립트를 사용하고 크래시).

git commit대신 명령을 실행하면 조건이 변경되지 않은 상태에서 ( 파일이 문제가 git submodule add된다고 계속 소리를 지른다 .gitignore) 대신 다른 오류 보고서가 표시됩니다.

$ git commit -a
fatal: Unable to create '..../.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

실제로 잠금 파일을 삭제합니다.

rm .git/index.lock

문제를 해결합니다. (이것은 git 버전 2.1.0.9736에서 발생합니다. 향후 git 릴리스에서 수정 될 수 있습니다.)


감사합니다. 이것이 내가 가진 문제로 밝혀졌습니다. 생명의 은인!
JDawgg

1

폴더에 대한 권한이 있는지 확인하십시오. 나는 방금 이것을 실행했고 그것은 내가 터미널에 로그인 한 사용자가 아닌 www-data 사용자가 폴더를 소유했기 때문입니다.


1

제 경우에는 문제를 일으키는 경로의 슬래시였습니다.

작동하지

/srv/bootstrap/

작업

srv/bootstrap/

1

한 가지 더 : 현재 디렉토리에 쓰기 또는 실행을 위해 루트 액세스 권한이 필요한 경우 루트 사용자인지 확인하십시오. 나는 실제로 서브 모듈을 추가하려고 할 때 이상한 오류가 발생했으며 git은 내가 복제하는 경로가 git ignore 파일에 의해 무시되고 있다고 계속 불평했습니다. 그런 다음 루트 사용자로 변경하고 하위 모듈 추가를 다시 실행했는데 문제가 없었습니다.


0

또한 확인하시기 바랍니다 ~/.gitignore하고 ~/.gitignore_global있는 어떤 망할 놈의 클라이언트 (맥 OS X에 대한 예를 들어 골드 피처 SourceTree)에 의해 생성 될 수 있습니다.


0

.gitignore파일이 자체를 무시하고 있지 않은지 확인하십시오 . 일반적인 실수는 현재 폴더의 모든 파일을 무시 *하도록 .gitignore파일에 규칙을 추가하는 것입니다 . 이에 대한 해결책은 다음에 예외를 추가하는 것입니다 .gitignore.

*
!.gitignore

이렇게하면 디렉토리의 모든 파일이 무시됩니다 .gitignore.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.