2014-09-16 3 views
1

전체 디렉토리를 무시하고있는 저장소가 있습니다. 그러나 거기에 서브 디렉토리가되고 싶은 개별 디렉토리가 있습니다. 그래서 내 자식 라인 그래서Git Submodules conflicting gitignore

!wp-content/plugins/my-plugin 

이 만 서브 모듈 코드, 올바른을 추적 할 추가에, 파일이 라인을 가지고

wp-content/plugins/ 

내가 계획하고 있었다 무시?

그래서 하위 모듈로 추가하려고 시도하고 "use -f 플래그"메시지가 나타납니다. 그래서 나는했다. 이제 git status는 디렉토리가 여전히 무시 되더라도 플러그인을 보여줍니다.

-f 강제로 git ignore 지시문을 무시합니까? 그리고 그렇다면, 나는 그저!를 생략 할 수 있습니까? 내 무시 파일과 같은 모든 커밋?

감사합니다.

답변

0

이 "Git ignore all except subfolder"이후 변경되지 않은 경우, 당신의 무시 규칙은 다음과 같습니다 나는 서브 모듈을 추가하기 때문에, my-plugin 위해 (당신처럼) 끝에 슬래시를 사용하지 않을

wp-content/plugins/* 
!wp-content/plugins/my-plugin 

my-plugin이라는 gitlink entry을 색인에 추가합니다.

+0

아, 결국 전체 디렉토리를 무시하고 그 끝에 *를 추가하는 적절한 방법이 있습니까? – thatryan

0

폴더와 하위 모듈을 무시하고 섞여 있지만 실제로는 다른 두 가지입니다. 해당 플러그인이 하위 모듈로 저장소에 존재하게하려면 하위 모듈이 저장소에 다른 엔티티로 설계되어 있기 때문에 무시해서는 안됩니다.

이 상황을 해결하려면 여기에서 수행해야 할 작업이 일시적으로 my-plugin 폴더를 저장소 밖으로 완전히 이동하십시오. 그런 다음 더 이상 필요 없으며 저장소의 해당 상태를 커밋하기 위해 .gitignore 파일에서 !wp-content/plugins/my-plugin 행을 삭제하십시오.

이제 my-plugin이 별도의 저장소 (하위 모듈로 추가되는 데 필요함)에 있는지 확인하고 해당 하위 모듈을 기본 저장소에 추가하십시오. 그 트릭을해야합니다.

+0

OK 그래서 그들은 두 가지 다른 방법으로 끝났습니까? 하위 모듈을 추가하면 전체 디렉토리의 gitignore를 "과장"할 수 있습니까? 따라서 명시 적으로 허용 할 필요가 없습니다. 또한 주목할 것은! wp-content/plugins/my-plugin 라인을 추가하지 않았다는 것입니다. 단지 내가 할 일이 무엇인지 알았습니다 ... – thatryan

+0

그것은 완전히 다른 것입니다. 귀하의 말에 그것을 설명하기 위해, 네, 그것은 gitignore에서 규칙을 "우회"하지만 서브 모듈의 파일은 실제로 상위 저장소에서 추적하지 않습니다. –