git 저장소에서 모든 숨겨진 디렉토리 / 파일을 재귀 적으로 무시하는 방법은 무엇입니까?


128

Git이 모든 숨겨진 파일과 디렉토리를 무시하도록하고 싶습니다. 즉

  • .aptitude
  • .ssh/
  • .bash_rc
  • config/.hidden

각 항목을 구체적으로 추가하지 않고이를 다루는 간단한 규칙이 있습니까?

답변:


165

그냥 패턴을 추가 .gitignore

.*
!/.gitignore

편집 :.gitignore 파일 자체를 추가했습니다 (아직 커밋되지 않은 경우 중요).


3
이 후에 필요한 일부 파일을 강제로 추가 할 수 있습니다. 예. .htaccess 파일 물론 요구 사항을 기반으로합니다.
dakdad

3
@ dakdad : 제안 주셔서 감사합니다. 답변을 개선했습니다. Poe에 .htaccess이미 체크인 한 것과 같은 특수 파일이 있으면 계속 추적됩니다. gitignore새 파일에만 중요합니다.
다니엘 Böhmer

@ DanielBöhmer 어쩌면 이것이 주제를 벗어난 것일 수도 있지만 파일의 위치에 상관없이 /.gitignore모든 .gitignore파일을 무시 하지 않는 이유 는 무엇입니까? 즉 왜 !.gitignore슬래시가 없는가?
Jason Young

1
@JasonYoung 재미있는 질문. 이 패턴은 파일 자체 만 무시합니다. 복사 및 붙여 넣기 예제에 대한 부작용 없이이 간결한 것으로 나타났습니다. 물론 .gitignore최상위 파일의 파일은 무시해도 .gitignore됩니다. 그러나 그 선택은 당신에게 달려 있습니다.
Daniel Böhmer

64

.gitignore 는 아직 '추가'되지 않은 파일에만 영향을 미칩니다.

새로운 .gitignore 항목을 모든 파일에 적용하려면

  1. .gitignore를 변경하십시오.
  2. git commit -a -m "Pre .gitignore changes"
  3. git rm -r --cached .
  4. git add .
  5. git commit -a -m "Post .gitignore changes"
  6. git status "커밋 할 것이없는 것 (작업 디렉토리 정리)"을 출력해야합니다.`

주어진 파일을 이미 커밋 한 경우 무시해도 더 이상 무시되지 않고 저장소에서 파일을 삭제하고 다음에 .gitignore 파일을 만들 때 "이미 추가되었습니다"라는 줄이 여기에 핵심입니다. 그것을 무시합니다.
Georgi Peev

21

에서 .git/info/exclude이 줄을 추가합니다 :

.*

이렇게하면 모든 숨겨진 / 도트 파일을 무시하고 시스템의 모든 저장소에 대한 기본값을 재귀 적으로 무시합니다. .gitignore이 방법으로 모든 리포지토리에 대해 별도의 파일이 필요하지 않습니다.

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