2016-06-27 3 views
1

내가 가지고 프로젝트 A와 B 같이 (별도의 자식 프로젝트 모두) :자식 - 체크 아웃이 개 프로젝트를 동시에

A/some files 
A/B/some more files 

나는 A를하지만 B를 추가 나는이 커밋하려고 할 때 B가 그것의 자신의 자식 프로젝트이기 때문에 내가 상정하는 상류의 repo에서 B의 어떤 표시도 없다.

나는 이것이 서브 모듈과 관련이 있다고 가정하지만 간단히 말해서 하나의 git checkout 명령을 사용하여 두 프로젝트를 동시에 체크 아웃 할 수 있습니까? 또는 2 개의 별도 명령 줄 호출을 수행해야합니까? 예 :

git checkout A; git checkout B; 

답변

0

두 개의 별도 git 프로젝트입니다. 그들에게는 자신의 소유권과 소유권이 있습니다. 그래서 아니야. 기본적으로 하나의 명령을 사용할 수 없습니다.

각 .git 폴더에는 모든 repo 정보가 들어 있습니다. 자식이 어디 밀어 알고 무엇을 헤드/그것이 가리키는 REPO 곳

enter image description here

이입니다. git은 .git 디렉토리가있는 현재 디렉토리에서 git repo 만 인식합니다.

더 명확한 설명 : 당신이 프로젝트 B의 변경을하고

git add . 
git commit -m "I'm in project A directory" 

이는 환매 특약 A. 그렇게 영향을 것 동안 다음 커밋 경우

git clone {url to B} 

는 않을 것 이러한 변경 사항을 반영하십시오.

0

그들은 서로에 대해 잘 모를 정도로 완전히 별개의 자식 Repo입니다. 따라서 명령은 활성화 된 repo에만 영향을 미칩니다. 'git rev-parse --git-dir'명령을 사용하여 활성화 된 git repo를 확인하십시오.

기본적으로 git가 현재 디렉토리에서 활성 저장소와 작업 트리를 결정하기 때문에 표시 한 명령 행을 호출하면 작동하지 않습니다 . 대신

cd path_to_A/A 
git rev-parse --git-dir 
git checkout MyBranchInA 
cd B 
git rev-parse --git-dir 
git checkout MyBranchInB 

자식 하위 모듈은 설정되지 않았기 때문에 참여하지 않습니다. 'git submodule add'로 설정할 수도 있고, 'git sub-tree'도 볼 수 있습니다. 이 명령에 대한 도움말은 'git help submodule'및 'git help subtree'를 참조하십시오.

관련 문제