개발관련/Git

git 프로젝트의 'bin'디렉토리 무시

Rateye 2021. 7. 30. 10:06
728x90
반응형

 

질문 : git 프로젝트의 'bin'디렉토리 무시

다음과 같은 디렉토리 구조가 있습니다.

.git/
.gitignore
main/
...
tools/
...
...

main과 tools, 그리고 어떤 수준의 다른 디렉토리 안에는 내가 무시하고 싶은 'bin'디렉토리가있을 수 있습니다 (그리고 그 아래의 모든 것을 무시하고 싶습니다). .gitignore에서 이러한 각 패턴을 시도했지만 그중 어느 것도 작동하지 않습니다.

/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too

누구든지 나를 도울 수 있습니까? 첫 번째 패턴 (작동해야한다고 생각하는 패턴)은 이렇게하면 잘 작동합니다.

/main/**/bin/**/*
    

그러나 모든 최상위 디렉토리에 대한 항목을 갖고 싶지 않으며 새 디렉토리를 추가 할 때마다 .gitignore를 수정할 필요가 없습니다.

이것은 최신 msysgit을 사용하는 Windows에 있습니다.

편집 : 한 가지 더, 이름에 하위 문자열 'bin'이있는 파일과 디렉토리가 있습니다. 무시하고 싶지 않습니다. :)

답변

버전 1.8.2 이전에는 ** .gitignore 에서 특별한 의미가 없었습니다. 1.8.2부터 git은 0 개 이상의 하위 디렉터리를 의미 ** 를 지원합니다 (릴리스 정보 참조).

디렉토리 트리에서 현재 수준 아래에있는 bin이라는 모든 디렉토리를 무시하는 방법 .gitignore 파일을 사용하는 것입니다.

bin/
    

man 페이지에는 유사한 패턴을 사용하여 foo 라는 디렉토리를 무시하는 예가 있습니다.

편집 : 더 이상 추적하지 않으려는 git 인덱스에 이미 bin 폴더가있는 경우 명시 적으로 제거해야합니다. .gitignore 패턴과 일치하기 때문에 이미 추적중인 경로 추적을 중지하지 않습니다. 인덱스에서만 ( --cached ) 재귀 적으로 ( -r ) 폴더 제거 ( rm)를 실행합니다. 루트 bin 폴더의 명령 줄 예 :

git rm -r --cached bin
    
출처 : https://stackoverflow.com/questions/1470572/ignoring-any-bin-directory-on-a-git-project
728x90
반응형