2017-01-31 1 views
0

내 앱에는 무시할 자식 디렉토리가 있지만 저장소 자체에 디렉토리를 남기고 싶습니다. 복잡한 점은이 디렉토리가 빌드 도구에 의해 자동으로 삭제된다는 것입니다. 그러므로 .gitignore를 디렉토리 안에 넣으면 모든 것을 무시하도록 지시합니다 (많은 게시물에서 제안 된 해결책은 작동하지 않습니다). .gitignore 파일은 자동으로 삭제됩니다.bin 디렉토리를 무시하고 bin 디렉토리를 유지하는 방법을 찾을 수 없습니다

그래서 내 프로젝트의 최상위 디렉토리에 .gitignore 항목을 만들었습니다. 서브 디렉토리 target의 내용을 무시하도록 알려줍니다. I가 원하는대로 정확히 작동

**/target/*

. target 디렉토리에 뭔가를 넣고 리모컨으로 밀어 넣으면 target 내용의 이후 변경 사항이 무시되고 target은 원격 저장소에서 절대 제거되지 않습니다.

문제는 bin으로 처리하면 작동하지 않는다는 것입니다. (bin이 비어 있지 않은 경우)을 입력하면 아무 것도 표시되지 않지만 어디에도 파일이 없으므로이 파일을 추가하지 않습니다. git add --force bin으로 추가 할 수 있지만 모든 것을 추가하고 이후의 변경 사항을 bin에 모두 추적합니다.

target에는 작동하지만 bin에는 작동하지 않는 것이 이상합니다. 자식 자식이 항목에 그렇게하지 않을 경우에도 무시할 수 있도록 하드 코드 된 bin dirs이있는 것으로 보입니다.

+0

이 특정'bin' 디렉토리가 이미 저장소에 커밋되어 있습니까? 이것은'.gitignore'에 추가하는 것이 왜 작동하지 않는지 설명 할 것입니다. 'bin' AFAIK에는 특별한 것이 없습니다. –

+0

이미 커밋 된 것으로 생각하지 않습니다. 그것은 실제로 내가 바라는 행동입니다. 다른 개발자는 코드를 가져 와서 Maven 빌드를 실행하고 Maven 빌드를 위해 bin 및 target dir이 있어야합니다. bin/.gitkeep을 추가 한 후 리모컨으로 이동하고 웹 인터페이스를 통해이 파일을 볼 수 있습니다. 해당 파일을 로컬 빌드 중에 삭제하면 git이 변경된 것으로 표시하고, 추가, 커밋 및 푸시하면 bin 디렉토리도 리모컨에서 사라집니다. 이 시점에서 bin에 다른 내용이 있지만 .gitkeep이 내가 추가 한 파일이므로 제거하면 전체 bin 디렉토리가 사라집니다. – MidnightJava

답변

0

git by git add --force bin까지도 git에 빈 폴더를 추가 할 수 없습니다.

기본적으로 git은 경로명으로 파일을 관리합니다. 폴더 대신 하나의 파일에 하나의 노드를 사용합니다.

.gitkeep 파일을 bin 폴더에 넣고 git add bin/.gitkeep, 동시에 추가해야하며 전체 폴더 대신 bin 폴더의 파일을 무시하도록 다음과 같이 규칙을 작성하십시오.

bin/* 
!.gitkeep 
+0

앞서 언급했듯이 .gitkeep 파일을 bin /에 보관할 수는 없습니다. 이클립스 프로젝트이고 프로젝트를 정리하면 .gitkeep 파일이 삭제됩니다. 나는 그렇게하지 않을 길을 찾을 수 없습니다. 따라서 깨끗한 후에는 bin/dir이 더 이상 원격 저장소에 없습니다. 클래스 파일은 있지만 원하는대로 무시됩니다. 나는 maven clean에 의해 삭제 된 target dir과 같은 문제를 가지고있다. 그러나이 배열은 그것들을 위해 작동한다. 어쩌면 문제는 제가 빌드 할 때 이클립스가 .gitigore에/bin/항목을 추가한다는 것입니다. 그러나 단 하나의 프로젝트에서이를 재정의 할 수있는 방법은 없습니다. – MidnightJava

관련 문제