2009-06-13 4 views
81

git이 관리하는 파일 구조에서 특정 디렉토리의 모든 인스턴스를 무시할 수 있는지 누구나 알고 있습니다.Git Ignores 및 Maven 타겟

여러 하위 모듈이있는 maven 프로젝트의 모든 'target'폴더를 제외하려고합니다. 나는 최상위 수준의 .gitignore에서 각각을 명시 적으로 제외시킬 수 있지만, 서브 디렉토리의 인스턴스를 자동으로 무시하도록 **/target/*과 같은 패턴을 지정할 수 있기를 정말로 원합니다.

이것이 가능합니까?

+0

이 구성을 어떤 구성으로 만들고 있습니까? * /. settings/*는 '.settings/*'또는 'xxx/yyy/.settings/*'가 아닌 'xxx/.settings/*'만 무시합니다. 무시 패턴은 재귀 적으로 적용되지 않는 것 같습니다. http://stackoverflow.com/questions/971465/git-ignore-certain-files-contained-in-specific-folders를 참조하십시오. – VonC

답변

67

.gitignore 파일의 패턴을 사용할 수 있습니다. gitignore man page을 참조하십시오. */target/* 패턴은 target과 그 아래에있는 모든 디렉토리를 무시해야합니다. 또는 */target/**을 시도하여 대상 아래의 모든 것을 무시할 수 있습니다.

+4

감사합니다. 여기 다른 누구에게나 .gitignore가 ususal maven & eclipse suspects를 건너 뛰는 내용입니다. 대상/* */대상/* .metadata * tar.gz의 .classpath 의 .project * /. 설정이 작업을하고 있습니다 어떤 구성으로/* – sgargan

+2

? * /. settings/*는 '.settings/*'또는 'xxx/yyy/.settings/*'가 아닌 'xxx/.settings/*'만 무시합니다. 무시 패턴은 재귀 적으로 적용되지 않는 것 같습니다. http://stackoverflow.com/questions/971465/git-ignore-certain-files-contained-in-specific-folders를 참조하십시오. – VonC

+4

다중 모듈 프로젝트의 경우 _ **/target/_을 사용할 수 있지만 소스의 합법적 인 "대상"디렉토리를 제외하지 않도록주의하십시오. – Bogdan

193

루트 디렉토리 에있는 .gitignore 파일은이 모든 하위 디렉토리에 적용됩니다. 내 모습은 다음과 같습니다 :

.classpath 
.project 
.settings/ 
target/ 

이것은 다중 모듈 메이븐 프로젝트에 있습니다. 모든 서브 모듈은 m2eclipse를 사용하여 개별 eclipse 프로젝트로 가져옵니다. 나는 더 이상 .gitignore 파일이 없다. 당신이 gitignore man page에서 보면 참으로 ... 경로, 또는 상위 디렉토리에 과 같은 디렉토리에 .gitignore 파일 에서 읽을

패턴

을 그래서이 작동한다 당신.

/target/** 

에이 \.git\info\ 폴더에 파일을 제외 :

+5

'*/target/*'보다 나은 대답입니다. 디렉토리 트리에있는 디렉토리를 제외하지만 파일에는 사용할 수 없습니다 (http://stackoverflow.com/questions 참조)./971465/git-ignore-specific-files-in-specific-folders) – VonC

+0

(계속해서 +1) – VonC

+2

계속 읽으면 "이 패턴은 .gitignore 파일의 위치와 관련이 있습니다." 답장이 잘못되었습니다 ... – user1387219

1

으로는 이미처럼 라인을 추가 할 수 있습니다 Abhijeet에 의해 코멘트 지적했다.

그런 다음 원격 저장소에있는 target 폴더를 없애려면 먼저 로컬 저장소에서이 폴더를 수동으로 삭제하고 커밋 한 다음 밀어 넣어야합니다. 그게 자식 때문에 처음에 수정 된 대상 폴더의 내용을 보여줍니다 때문입니다.