홈>
이 트릭을 수행하기로 결정했습니다 :
*
!/dir1/
!/dir2/
!/file1
!/file2
그러나 놀랍게도 그렇지 않았습니다. 별표 앞에 슬래시를 붙이면 효과가있는 것 같습니다. 그러나이 변경 전에 왜 작동하지 않는지 실제로 이해하지 못합니다. 아무도 지적 할 수 있습니까?
- 답변 # 1
관련 자료
- git - 특정 디렉토리의 모든 하위 디렉토리에있는 json 파일을 제외한 모든 파일을 gitignore
- rename - Bash를 사용하여 파일 및 디렉토리 이름 일괄 변경
- vue.js - 일부 파일을 제외하고 깨끗한 outputDir
- unit testing - Jest에서 빈 테스트 파일을 던지는 오류를 무시하는 방법
- git branch - Git diff 및 병합 중에 특정 파일 및 폴더를 무시하는 방법
- asp.net mvc - VS에서 Mac으로 VSTS로 커밋 할 때 파일을 무시하는 방법은 무엇입니까?
- styles - SonarQube 스캐너에서 모든 scss 파일을 무시하는 방법?
- python 3.6 - Python3 문자열 일치 코드가 기준과 일치하지 않는 파일을 무시하도록하려면 어떻게해야합니까?
- javascript - React-App에서 특정 js 파일을 가져 오는 모든 js 파일을 찾는 방법
- Angular 7 - 앵귤러 7 - 다른 디렉토리에서 파일을 분리하는 방법
- linux - 찾기를 사용하여 동일한 이름으로 다른 디렉토리의 파일 이름을 바꾸는 방법
- 파일 이름의 마지막 3 자로 시작하는 디렉토리에 파일을 복사하십시오
- subprocess - 왜 파이썬은 pyc 파일을 선호하는 소스 파일을 무시합니까?
- 디렉토리에서 jsdoc을 실행하는 방법은 gitignore 파일을 무시합니다
- 파일이 거의없는 텍스트 파일 만 삭제하는 방법
- python - 특정 열> 2 개 파일에서 공통 요소를 찾고 각각의 해당 줄을 인쇄합니다
- Jupyter 웹 서버, 디렉토리 및 파일을 볼 수 없음
- python - 속성이있는 디렉토리의 파일을 알파벳순으로 열거
- python - 디렉토리가 아닌 파일 만 이동하는 데 어려움
- Nginx - nginx - 색인을 제외한 모든 * php 파일 차단
관련 질문
- git ignore <무시할 패턴>을 포함하는 파일 이름을 무시합니다.
- git : JetBrains .idea 파일을 제어하는 버전에 대한 가장 최신 모범 사례는 무엇입니까?
- Github에서 .env 파일을 숨기는 방법
- github 공개 저장소에서 API 키 숨기기
- git - 커밋 된 파일을 가져 오지 않는 방법?
- 메인 git 저장소에서 추적되지 않은 디렉토리 트리 (하위 모듈 /하위 저장소)를 제거하려면 어떻게해야합니까?
- c# : gitignore에서 파일 및 경로 필터링
- git - Github에서 API 키를 숨기려면 gitignore 또는 "your-api-key-here"를 사용해야합니까?
- git - 기록을 안전하게 확인하는 방법은 무엇입니까?
- git - 특정 디렉토리의 모든 하위 디렉토리에있는 json 파일을 제외한 모든 파일을 gitignore
부정 패턴을 사용하려면 와이즈 비즈 단지 두 가지 규칙을 기억하십시오.
규칙 1. 파일과 디렉토리는 패턴에서 개별적으로 처리됩니다. 디렉토리를 다시 포함한다고해서 하위 파일/디렉토리도 다시 포함되는 것은 아닙니다.
I.E. 목표는
!
내부의 모든 것을 제외한 모든 파일/디렉토리를 제외시키는 것입니다. . 다음은 작동하지 않습니다.왜? 그 이유는 첫 번째 규칙입니다. 디렉토리
/dir1
이지만 하위 파일/디렉토리가 모두 포함 된 것은 아닙니다. 자식이없는 디렉토리 만 포함하면 자식은 아무것도 의미하지 않습니다 .git은 빈 폴더를 추적하지 않기 때문입니다.비교하자면 다음과 같이 작동합니다.
왜?
dir1
이기 때문에 루트 디렉토리의 파일/디렉토리 만 직접 일치하지만# works /* !/dir1/
와 같은 서브 디렉토리의 파일/디렉토리는 무시하지 않습니다. 여기./*
후dir1
포함 다시, 모든 하위 파일/디렉토리가 자연스럽게 돌아 왔습니다.그렇다면
!/dir1/
이후 왜 다음과 같이 작동하지 않는지 물어볼 수 있습니다.dir1
의 모든 하위 파일/디렉토리를 포함합니다 다시?이유는 규칙 2에 있습니다.
규칙 2. 상위 디렉토리가 여전히 무시되는 경우 파일/디렉토리가 다시 포함되지 않습니다.이 규칙을 보려면 SO 질문에 대한 내 답변을 먼저 읽으십시오.
이전 패턴이 작동하지 않는 이유입니다. 부모 디렉토리
<시간>dir1
를 포함하기 위해 다른 부정 패턴을 추가하면 먼저 작동합니다.두 가지 규칙을 이해 한 후 OP 사례에 대한 솔루션은 매우 간단합니다.
다음은 작동합니다.
그리고 다음도 작동합니다.
다음과 같이 간단하게하기 위해
* !/dir1/ !/dir1/** !/dir2/ !/dir2/** !/file1 !/file2