git subtree
에 로컬 변경 내용을 만들고 하위 트리의 repo에있는 분기에이 변경 내용을 적용하여 변경 내용을 병합하도록 끌어 오기 요청을 만들 수 있습니다. 서브 트리의 master
에 해당 분기가 있습니까?끌어 오기 요청에 대해 git 하위 트리에서 분기로 변경 내용을 푸시
두 개의 리포즈 (project
과 protocols
)가 있는데, 둘 다 내 제어하에 있다고 가정합니다.
1 단계 : project
의 repo에 subtree
로 protocols
를 추가
$ git remote add protocols [email protected]:corp/protocols.git
$ git remote
origin
protocols
$ git subtree add --prefix=protocols protocols master --squash
...
From bitbucket.org:corp/protocols
* branch master -> FETCH_HEAD
* [new branch] master -> protocols/master
Added dir 'protocols'
2 단계 : 구성하는 protocols
하위 트리에있는 파일에 project
의 repo에서 일부 변경
$ cd protocols
$ echo "foo" > some_file
$ git commit -a -m "added foo"
3 단계 :에 지점을 만듭니다.내 로컬 변경 사항을 project/protocols
하위 트리에서 해당 지점으로 푸시
??
나는 나의 subtree
변경이 성공적으로 원격 protocols
의 repo에 지점에 밀려 일단
, 나는 다음 해당 병합 끌어 오기 요청을 만들 수 있습니다 ... 최선 이것을 달성하는 방법에 관해서는 확실 해요 protocols
master
으로 변경됩니다.
질문 :
나는
protocols
의 로컬 복사본을 가지고있다. 해당 저장소로 변경하고 분기를 만든 다음project
으로 다시 변경하고subtree
변경 사항을 내 로컬protocols
저장소로 푸시합니까?나는
subtree
내 지역protocols
의 repo에 (아직 창조되지 현재) 새로운 지점에 직접 을 변경 밀어 수 있습니까?나는 밀어 수있는 원격
protocols
의 repo에 (의 아직 창조되지 않은) 직접 새 지점에subtree
변경 ?권장되는 워크 플로입니까?
(
--squash
가 사용 된 가정, 다른 프로토콜 변화에 일반적으로 함께) 후속 하위 트리 풀에 의해 만들어진 커밋 subtree split'에 이어'git push '명령을 실행하여 서브 트리의 원래 저장소에 저장합니다. 이것은 "훌륭하게"작동하지만, 마스터에 병합 할 수없는 고아 지점을 가져 왔으므로 제안대로 "현재 풀 요청을 작성할 수 없습니다". 내가 뭘 놓쳤는가? 감사! – yoyo@yoyo 명시 적으로 '하위 트리 분할'을 사용한 적이 없습니다. 두려워서 도움이되지 않습니다. 미안 해요! –