언제 .gitignore 대신 .git / info / exclude를 사용하여 파일을 제외 하시겠습니까?


144

파일 사용 .git/info/exclude.gitignore제외의 장단점에 대해 약간 혼란 스럽습니다 .

둘 다 리포지토리 / 프로젝트 수준에 있으므로 어떻게 다르며 언제 사용해야 .git/info/exclude합니까?

답변:


196

장점 .gitignore은와 달리 저장소 자체로 체크인 할 수 있다는 것 .git/info/exclude입니다. 또 다른 장점은 .gitignore디렉토리 특정 무시 규칙에 대해 각 디렉토리 / 하위 디렉토리에 하나씩 여러 파일을 가질 수 있다는 것 .git/info/exclude입니다.

따라서 .gitignore모든 저장소 복제본에서 사용할 수 있습니다. 따라서, 대형 팀에있는 모든 사람들은 파일 예 같은 종류의를 무시하고있다 *.db, *.log. 그리고 여러 가지로 인해 더 구체적인 무시 규칙을 가질 수 있습니다 .gitignore.

.git/info/exclude은 개별 클론에만 사용할 수 있으므로 한 사람이 자신의 클론에서 무시하는 것은 다른 사람의 클론에서 사용할 수 없습니다. 예를 들어, 누군가 Eclipse개발에 사용 하는 경우 다른 개발자가 Eclipse를 사용하지 않을 수 있으므로 개발자가 .build폴더를 추가하는 .git/info/exclude것이 좋습니다.

일반적으로 보편적으로 무시해야하는 파일 / 무시 규칙은로 이동해야하며 .gitignore, 그렇지 않으면 로컬 클론에서만 무시하려는 파일은.git/info/exclude


그러나 Git 공식 문서에 따라 ~ / .gitignore로 들어가는 것이 이상적입니다. git-scm.com/docs/gitignore
Devendra Swami

@DevendraSwami ~/.gitignore위의 의견에 어떤 특정 항목을 입력해야합니까 ? 내 이해는 무시 규칙이 $PROJECT/.git/info/exclude(프로젝트, 사용자) 특정 무시 규칙에 대해 3 레벨이 될 수 있다는 것입니다.이 규칙은 $PROJECT/<any number of directories>/.gitignore모든 사용자에 대한 프로젝트 별 무시 규칙 (체크 인시), ~/.gitignore 해당 사용자의 모든 프로젝트에 대한 사용자 별 무시 규칙 그 기계에. 목표에 따라 출품 장소를 선택합니다.
mu 無

예, 당신은 절대적으로 맞습니다. 내 의견은이 질문과 관련이 있습니다 stackoverflow.com/questions/59673991/…
Devendra Swami

불완전한 원래 의견에 대해 사과드립니다.
Devendra Swami

2
@ ShimmyWeitzhandler, sln 파일이 이미 저장소에 있습니까? 그런 다음 제외 또는 .ignore는 git이 변경 사항을 추적하지 못하게하지 않습니다. 다음 중 하나를 시도하십시오 git rm --cached <path-name>. 저장소에서 삭제하지만 로컬로 유지하십시오. git update-index --skip-worktree <path-name>파일의 변경 사항은 무시하지만 리포지토리에 보관합니다. 호기심에서 : 왜 sln 파일을 제외하고 싶습니까? .Net 솔루션의 중요한 부분입니까?
Koen

36

Googled : 파일을 제외시키는 3 가지 방법

  1. .gitignore 이 리포지토리의 모든 복제본에 적용됩니다 (버전은 누구나 보유 함).
  2. .git/info/exclude 이 저장소의 로컬 사본에만 적용됩니다 (로컬, 다른 사용자와 공유하지 않음).
  3. ~/.gitignore 컴퓨터의 모든 리포지토리에 적용됩니다 (로컬, 다른 사람과 공유하지 않음).

3. 실제로 컴퓨터에서 구성을 설정해야합니다.

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

2
그래, 나도 그것을 읽었지만 좀 더 실용적인 (실제) 관점을 얻고 싶었다 :-)
Parag

링크 된 블로그는 실수로 파일을 호출 .git/info/excludes그것이 있어야 할 때, .git/info/exclude그것은에 연결하는 문서에 의해 확인 된.
mwfearnley 12

13
(스포일러 : 세 번째 방법은 ~ / .gitconfig의 설정을 통한 컴퓨터 전역 무시입니다)
hmijail은 사임 자

@ hmijail : 감사합니다, 나는이 답변에 귀하의 의견을 포함
LeGEC

12

(실제) 경험을 제공하기 위해 : 각 개발 환경에서 일부 구성 파일을 사용자 정의해야했지만 소스가 리포지토리에서 유지되고 다른 개발자가 사용할 수 있기를 원했을 때 .git / info / exclude를 사용하기 시작했습니다.

이런 식으로, 복제 및 수정 된 로컬 파일은 리포지토리의 원본 파일에 영향을주지 않고 리포지토리에서 반드시 무시되지 않고 커밋에서 제외 될 수 있습니다.


4

프로젝트와.gitignore 관련된 규칙을 무시하는 데 사용 합니다 . 환경 에 따라 무시 규칙을 사용하려면 전역 무시 파일을 사용하십시오 .exclude

예를 들어, 전역 무시 파일은 내가 사용하는 편집기에서 생성 한 임시 파일을 무시합니다.이 규칙은 내 환경에 따라 다르며 동일한 프로젝트의 다른 개발자에 따라 다를 수 있습니다 (아마도 다른 편집기를 사용함). OTOH, 내 프로젝트 .gitignore파일은 API 키 및 빌드 아티팩트와 같은 것을 무시합니다. 프로젝트 용이며 프로젝트의 모든 사람에게 동일해야합니다.

도움이 되나요?

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