ProgramingTip

특정 파일 형식을 제외하고 특정 폴더 아래의 모든 파일을 재귀 무시합니다.

bestdevel 2020. 10. 12. 07:55
반응형

특정 파일 형식을 제외하고 특정 폴더 아래의 모든 파일을 재귀 무시합니다.


어느 쪽 질문 ( 1 , 23 )을 해결하지만 해결책을 얻지.

특정 파일 형식을 제외하고 특정 폴더 아래의 모든 파일을 무시해야합니다. 폴더는 루트 경로의 하위 디렉토리입니다. 폴더 이름을 지정하겠습니다 Resources. 나는 일을 복잡하게 만들지 않기 때문에 모든 폴더 아래의 파일을 무시하겠습니다 .Resources

이것은 모든 이메일 질문에서 가장 일반적인 솔루션입니다.

# Ignore everything
*

# Don't ignore directories, so we can recurse into them
!*/

# Don't ignore .gitignore
!.gitignore

# Now exclude our type
!*.foo

솔루션의 문제점이은 새로 추가 된 파일의 추적을 중지 한다는 을 구석으로입니다 ( *모든 파일을 무시 하므로 ). 모든 파일 형식을 계속 제외하고 싶지는 않습니다. 새 파일이 추가되면 git status표시 되는 동작을 원합니다 .

마침내 여기 에 해결이 생겼습니다 . 해결은 폴더 에 다른

.gitignore파일 을 추가하는 것 Resources입니다. 이 작동합니다.

하나의 무시 파일로 동일한 결과를 얻을 수 있습니까? 나는 다른 디렉토리에 많은 파일이 약간 어색이 있다는 것을 알았습니다.

이것이 내가 달성하려는 것입니다.

# Ignore everything under Resources folder, not elsewhere
Resources

# Don't ignore directories, so we can recurse into them
!*Resources/

# Now exclude our type
!*.foo

그러나 이것은 반대의 결과를 제공합니다. *.foo유형을 무시 하고 다른 파일을 추적합니다.


@SimonBuchan이 맞습니다.

git 1.8.2는 Resources/** !Resources/**/*.foo작동합니다.


가장 좋은 대답은 Resources / .gitignore 파일을 Resources 아래에 추가하는 것입니다.

# Ignore any file in this directory except for this file and *.foo files
*
!/.gitignore
!*.foo

.gitignore 파일을 추가하지 않고 추가 할 수없는 경우 다음과 같은 문제가 있습니다.

# Ignore any file but *.foo under Resources. Update this if we add deeper directories
Resources/*
!Resources/*/
!Resources/*.foo
Resources/*/*
!Resources/*/*/
!Resources/*/*.foo
Resources/*/*/*
!Resources/*/*/*/
!Resources/*/*/*.foo
Resources/*/*/*/*
!Resources/*/*/*/*/
!Resources/*/*/*/*.foo

지정된 것보다 더 디렉토리 디렉토리를 추가하는 경우 해당 패턴을 편집해야합니다.


어리석은 것처럼 보일 수 있습니다 이전에 색인에 무시하려는 폴더 / 파일을 아직 추가하지 않을 것 같은 확인하십시오. 그렇게 많이 .gitignore 파일에 무엇을 상관 든 상관없이 폴더 / 파일은 여전히 ​​준비됩니다.


내가 잘못하고 있거나 현재 git에서 더 이상 허용되는 대답이 작동하지 않습니다.

나는 거의 같은 해결책을 찾았고 여기 에 거의 같은 질문에 게시했습니다 . 자세한 내용은 거기로 가십시오.

해결책 :

# Ignore everything inside Resources/ directory
/Resources/**
# Except for subdirectories(won't be commited anyway if there is no commited file inside)
!/Resources/**/
# And except for *.foo files
!*.foo

참고 URL : https://stackoverflow.com/questions/17812717/correctly-ignore-all-files-recursively-under-a-specific-folder-except-for-a-spec

반응형