먼저 그래프의 모양을 이해합시다. 분기 된 Repo의 팁이 x
이고 분기가없는 선형 이력이 있다고 가정 해 봅시다. 그래서 역사는 다음과 같습니다
[1000's of commits] -> parent(parent(x)) -> parent(x) -> x
이제 최신 하나되는 가장 오래된 및
D
되는 네 개의 커밋
A
으로, 즉
A
,
B
,
C
및
D
했다. 그 위에 포함되지,
x
는 그대로보다 역사 이전
x -> A -> B -> C -> D
참고 때문에 우리가 논의하고있는 무슨에 대한 정보는 필요하지 않음 조각 : 지금 당신은 그래프 같은 것을 보인다.
이제는 변경 집합 B
만 포함하는 끌어 오기 요청을 만들려고합니다. 주 리포가 B
의 부모 인 A
도 모르기 때문에 현재 상태에서는 불가능합니다. 부모가 될 때까지는 아이를 가질 수 없습니다.
그래서 우리가 B
변경 요청의 풀 요청을 만들려면 rebase
을 x
에 만들어야합니다.
rebase
의욕의 확장이며 당신은 우리가 확장 가능 일단의이 리베이스 보자 당신의 .hg/hgrc
[extensions]
rebase =
에 다음 줄을 추가하여 설정할 수 있습니다. B
의 부모가 x
때문에
x -> A
\-> B -> C -> D
지금 당신이 끌어 오기 요청을 만들 수 있습니다
hg rebase -s B -d x
이 발생합니다. C
을 다시 A
에 리베이스하여 더 깨끗한 상태를 유지할 수도 있습니다. 두 개의 브랜치가 생기고, 하나는 푸시 할 변경 집합을 포함하고 다른 하나는 다른 로컬 변경 집합입니다.다시 리베이스하는 것은 다음과 같습니다
hg rebase -s C -d A
그리고 역사의 결과 상태는 다음과 같습니다 이제 쉽게 만 B
변경 집합을 포함하는 풀 요청을 만들 수 있습니다
x -> A -> C -> D
\-> B
.
관련 링크 :
Rebase Extension