제목처럼 "점없는 파일"을 gitignore 파일에 추가 할 수 있습니까?
나는 이것이 모든 귀찮은 확장이없는 파일을 처리 할 것이라고 생각합니다.
제목처럼 "점없는 파일"을 gitignore 파일에 추가 할 수 있습니까?
나는 이것이 모든 귀찮은 확장이없는 파일을 처리 할 것이라고 생각합니다.
답변:
다음과 유사한 조합을 시도 할 수 있습니다.
*
!/**/
!*.*
즉, gitignore
제외 규칙 (A 부정 패턴 ), 모든 파일을 무시 연장으로 사람을 제외시켰다해야한다.
Mad Physicist가 아래 에서 언급했듯이 규칙은 다음과 같습니다.
해당 파일의 상위 디렉토리가 제외 된 경우 파일을 다시 포함 할 수 없습니다. (*
)
(*
: git 2.?+에서 특정 조건이 충족되지 않는 한, 아래 참조)
그렇기 때문에 !/**/
파일을 화이트리스트에 추가하려면 중요합니다 (상위 폴더를 재귀 적으로 화이트리스트에 추가).
다음과 같은 유사한 경우에 동일한 규칙을 언급했습니다.
Jakub Narębski가 언급 했듯이 무시하고 싶지 않을 수도 있습니다. 확장 모든 파일 .
내 조언:
.gitignore
위와 같이 편집하십시오 . 이미 버전이 지정된 파일은 (확장자가 없더라도) 무시되지 않습니다. 나머지는 모두 무시됩니다.버전을 지정할 향후 확장없는 파일의 경우 :
git add -f -- myFile
git 2.9.x / 2.10 (2016 년 중반?)에서 re-included 경로에 와일드 카드가없는 경우 해당 파일의 상위 디렉토리가 제외 되면 파일을 다시 포함 할 수 있습니다 .
Nguyễn Thái Ngọc Duy ( pclouds
) 가이 기능을 추가하려고합니다.
그러나 다시 포함하는 규칙 중 하나는 다음과 같습니다.
다시 포함 규칙의 디렉토리 부분은 리터럴이어야합니다 (예 : 와일드 카드 없음).
이것은 어쨌든 여기서 작동하지 않았을 것입니다.
.gitignore
것 **
하고 !**.*
. 나는 별표가 앞에 배치되어있는 경우이 차이를하지 않습니다 알고 있지만, 쉘이 와일드 카드를 처리하는 방법에 더 명시 적 소리는 ...
**
힘내에 추가되었습니다 1.8.2
. !*/
대신 사용 하는 것에 대한 단점 이 !/**/
있습니까?
*
!*/
!*.*
*
git에게 모든 것을 무시하도록 지시합니다.
!*/
그런 다음 디렉토리 인 모든 것을 무시합니다. 이것은 매우 중요합니다.
!*.*
확장자가있는 모든 파일을 무시합니다.
!*/
규칙이 없으면 .
이름에가없는 디렉토리 는 나열되지 않으며 원하는 파일이 루트 폴더 외부에 추가되지 않습니다.
참고로 .gitignore 문서 에서 다음 두 섹션을 읽어보십시오 .
선택적 접두사 "!" 패턴을 부정합니다. 이전 패턴에서 제외 된 일치 파일은 다시 포함됩니다. 해당 파일의 상위 디렉토리가 제외 된 경우 파일을 다시 포함 할 수 없습니다. Git은 성능상의 이유로 제외 된 디렉터리를 나열하지 않으므로 포함 된 파일의 모든 패턴은 정의 된 위치에 관계없이 영향을주지 않습니다. 첫 번째 "!"앞에 백 슬래시 ( "\")를 넣으십시오. 리터럴 "!"로 시작하는 패턴 (예 : "! important! .txt")
패턴이 슬래시로 끝나면 다음 설명을 위해 제거되지만 디렉토리와 일치하는 항목 만 찾습니다. 즉, foo /는 디렉토리 foo 및 그 아래의 경로와 일치하지만 일반 파일 또는 기호 링크 foo와 일치하지 않습니다 (이것은 Git에서 일반적으로 pathspec이 작동하는 방식과 일치합니다).
내 폴더에는 *.c, *.h, *.txt, *.csv
확장자 가없는 파일과 확장자가없는 바이너리 파일 이 많이 있습니다. 그래서 나는 모든 파일 execpt 무시할 필요 *.c,*.h
하고 .gitignore
,로부터 나를 위해이 작품, 그래서 .gitignore
예 :
*/* #ignore all files in each directory
!*/*.c #unignore .c files in each directory
!*/*.h #unignore .h header files in each directory
!.gitignore #unignore .gitignore
README
,LICENSE
또는COPYING
,INSTALL
,Makefile
등, 당신은 항상 수 있지만이를 강제로 추가 한 다음 그들이 추적