2014-01-15 3 views
0

그래서 프로젝트의 현재 상태에 대한 스냅 샷으로 유지할 브랜치를 만들었습니다. 나는 그것을 "v1"이라고 불렀다.끌어 오기 요청을 기존 분기로 병합하려면 어떻게합니까?

그런 다음 일부 코드를 리팩터링하고 마스터 분기에 커밋했습니다. 그래서 지금 나는 최신의 가장 훌륭한 주인이 있습니다.

내 질문은 : 누군가가 마스터 요청을 제출하면 이전 분기를 어떻게 유지합니까? 양쪽 분기에 끌어 오기 요청을 병합하는 쉬운 방법이 있습니까?

내가 기대하는 바는 : 파일이 많이 변경된 경우 충돌이 나타납니다. 그러나 그렇지 않다면 PR의 기본이 기존의 "v1"브랜치보다 앞서더라도 PR이 도입 한 변경 사항 만 병합합니다. remote가 풀 요청 유래 ref 및 리모트 브랜치의 이름

답변

1
git fetch <remote> 
git merge <remote>/<ref> 

는 손잡이를 요청하는 커밋 (또는 지점)의 식별자이다. 따라서 기본 저장소가 upstream이라는 리모컨으로 있고 해당 저장소가 5d4434e (예 : repository's pull request)을 기반으로하는 끌어 오기 요청을 갖는 경우 다음을 실행하십시오 :

git fetch upstream 
git merge upstream/5d4434e 

이렇게하면 커밋과 로컬 repo에서 누락 된 모든 기록을 병합합니다. 모든 커밋이 아닌 커밋의 변경 사항 만 병합하려면 git cherry-pick upstream/5d4434e이 필요할 수 있습니다.

+0

내 리팩토링 변경 사항이 기존 분기로 이동하지 않기 때문에 git merge가 작동하지 않습니다. git cherry-pick을 사용하여 모든 커밋을 풀 (pull) 요청으로 사용해야합니다. – Renato

+0

당신은 아마도 끌어 오기 요청의 모든 커밋을 선택해야 할 것입니다. (너무 많지는 않을 것입니다.) 끌어 오기 요청의 실제 정보가 저장소에 저장되어 있다고 생각하지 않기 때문에 아마도 커밋을 선택해야 할 것입니다. – Sam

+1

이게 동작 할 것 같아. git cherry-pick -m 1 <병합 커밋> – Renato

관련 문제