2012-09-13 3 views
5

버전 관리 대상인 주 프로젝트가있는 경우.git 리모컨은 어떻게 작동합니까?

는 그때 그때

git pull myplugin master을 할 수 있으며 그냥 원격에서 변화를 가져옵니다

git remote add myplugin <url>

의 플러그인 제 3자가 원격를 추가합니다.

지금 내 프로젝트로 설정되어 말할 수 :

/ 
/index.php 
/whatever 

및 원격는

/ 
/whatever.php 

내가

/index.php 
/whatever 
/myplugin 
/myplugin/whatever.php 

와 끝까지 원격 끌어 오기로 설정되어 이것은 좋다. 내가 myplugin 변경을 한 경우

내가 궁금하고 무엇, 는

내가 git push myplugin master를 발행하는 경우

무엇을 밀어?

myplugin에서만 변경 사항을 적용하려고합니까? 또는 리모컨을 두 번째 리포지토리로 사용하고 전체 리포지토리를 커밋 할 예정입니까?

답변

6

당신은 /myplugin/whatever.php에서는, git pull myplugin 후, 끝날 것 에서 모두 리모컨으로 리포 (로컬 'myplugin'의 변경 사항 만이 아님)를 커밋합니다. 당신이 설명하는 무엇

submodules라고 ('myplugin'에서만 변경 사항을 밀거나 당겨은 'myplugin'에 커밋).

git submodule add url/myplugin myplugin 

이렇게하면 myplugin 디렉토리가 추가되어 질문에 설명 된 것처럼 두 번째로 중첩 된 Git repo를 찾을 수 있습니다.
새로운 리모컨이 아니라 특정 SHA1에 다른 저장소를 하위 디렉토리에 포함하기위한 하위 모듈 URL입니다.

0

리모컨은 하나이기 때문에 리모컨이 두 번째 저장소처럼 작동합니다. 푸시 명령을 내릴 때 GIT는 수정 된 내용을 리모컨으로 복사하여 로컬 저장소에 효과적으로 다시 가져옵니다.

푸시가 하위 디렉토리로 이동하는지 묻는다면 대답은 '예'입니다.

아직 로컬 저장소에 커밋되지 않은 변경 사항이 원격지로 푸시 될 것인지 묻는 경우 대답은 아니오입니다. 원격 REPO 이미 모든 역사를 당기고 당신의 repo로 병합하거나 밀어 원격 수단을 추가 (안 juut whatever.php)

/myplugin/whatever.php 포함 된 경우에만