2012-10-30 3 views
1

하자의 호출이 프로젝트 A를 자원 코드를 유지하고 B. 여기에 그들 각자의 구조입니다 :망할 놈의 하위 트리 - 동기화

/ 
|- Foo 
| |- core 
| | |- bar.txt 
| | |- ... 
| |- specific 
|   |- ... 
|- ... 

/푸/코어의 내용은/이 존재 AND에 있어야 A와 B에서 로컬로 동기화 할 수 있습니다. 즉, 프로젝트 A에서 bar.txt를 편집하면 같은 시스템에서 프로젝트 B의 변경 사항을 가져올 수 있고 그 반대도 마찬가지입니다.

"코어"라는 프로젝트를 만들고 A와 B의 서브 모듈로 만들려고했습니다. 문제는 bar.txt를 편집하면 리모컨으로 밀어 넣고 A를 누르면 분명히 ' 하위 모듈 업데이트로 프로젝트 B에 코드가 없습니다. 그것은 같은 프로젝트가 아닙니다.

하위 트리 병합도 시도했습니다. 문제는 "핵심"이 독립 실행 형 프로젝트가 아니기 때문에 개발할 수 없다는 것입니다. 리소스 파일 일 뿐이며 커다란 기능을위한 일반적인 기능입니다. 따라서, 나는 bar.txt를 A와 B 중 하나에서 편집 할 수 있기를 바란다. 이 프로젝트의 일부로 테스트한다. 구체적으로는이고 다른 프로젝트에서도 테스트 해 볼 수있다. 망할 놈의 책

은 장에 대한 subtree merging에, 말한다 : 당신은 [...] master 브랜치의 랙 하위 디렉토리에 변경을 한 다음 rack_branch 분기로 병합 할 수 있습니다

나중에 관리자에게 제출하거나 업스트림에 푸시 할 수 있습니다.

그러나 어떻게해야하는지, 어떻게하면 2 개의 로컬 폴더를 동기화 할 수 있는지에 대해서는 설명하지 않았습니다.

답변

0

서브 모듈이 작동합니다. 프로젝트 A에서 작업 할 때 핵심 프로젝트를 변경하면 두 프로젝트 모두에서 변경 내용을 푸시합니다. 프로젝트 B에서 코어를 업데이트하려면 프로젝트 B의 코어에서 변경 사항을 가져와야합니다. 프로젝트 B를 CD 아웃하여 git add -A && git commit -m "updated core"으로 프로젝트 B를 최신 코어로 업데이트하십시오.