我从[dev-project2]分支创建了一个新分支(pj2 / new-register-feature),并且我向[dev-project2]分支创建了一个pull请求。 (拉请求1)。
然后让我们继续动作rebase [dev-project2]到[dev-project1]并在rebase之后推送[dev-project2]分支。
但是当我按照上面的回复[pull request 1]时,在[dev-project2]重新定位到[dev-project1]分支后,[pull request 1]发生了大量的提交。
那么,你能帮我解释一下吗?如何更新[拉请求1]只看到创建拉请求的[pj2 / new-registry-feature]提交
答案 0 :(得分:3)
以下是我理解您的问题的方法(如果我遗漏了某些内容,请告诉我):
您从:
开始--A--B--C--D--E--F--G--H <- dev-project1
\
\-c--d--e--f--g <- dev-project2
\
\-p--q--r <- pj2/new-register-feature
并创建了一个拉取请求,将pj2/new-register-feature
合并到dev-project2
。
然后你将dev-project2
重新加入dev-project1
。
随着rebase的完成,图表现在看起来像:
--A--B--C--D--E--F--G--H <- dev-project1
\ \
\-c--d--e-[f]-[g] \-c'--d'--e'--f'--g' <- dev-project2
\
\-p--q--r <- pj2/new-register-feature
您在合并请求中观察到的是:
p--q--r
视为您的分支的历史记录(wrt dev-project2
),c--d--e--p--q--r
如果您想要恢复更接近初始图表的内容,则需要在pj2/new-register-feature
之上重新定位e'
(即:{{1}之间原始分叉点的重新定义版本}和pj2/new-register-feature
)。
答案 1 :(得分:0)
我会尝试用图像来解释它。
将project2重新绑定到project1之后,更改project2中的所有提交(至少是它们的哈希),因为rebase在project1中提交后将它们放入。 在这种情况下,您的project2提交和新注册功能提交完全不同,您可以看到所有这些提交。
阅读https://git-scm.com/book/en/v2/Git-Branching-Rebasing了解更多数据,他们会解释您在重新定位时会发生什么。