gpt4 book ai didi

git - 在 Github 上更改 pull 请求的基本分支时将删除哪些提交?

转载 作者:行者123 更新时间:2023-12-04 01:43:01 25 4
gpt4 key购买 nike

协作者在 Github 存储库上创建了 pull 请求,该存储库基于 master分支。我想将它 merge 到我目前正在处理的下一个发布分支中( 2.0.3 )而不是 master分支。正如几个答案指出的那样,我可以通过单击 pull 请求标题旁边的“编辑”然后更改基本分支来完成此操作。

但是,当我这样做时,我收到一条警告“来自旧基础分支的某些提交可能会从时间线中删除。” Github help page还说“当您更改 pull 请求的基本分支时,可能会从时间线中删除一些提交。”

任何人都可以解释此警告指的是哪些提交,以及何时可以删除它们?这些提交是否在 master 中?分支、 pull 请求还是新的基本分支( 2.0.3 )? “从时间线中删除”是指 Github 上 pull 请求的讨论页面,还是意味着从存储库中删除提交?

更新

正如@RomainValeri 指出的那样,此过程不会从存储库中添加或删除任何提交,它只是更改 pull 请求中显示的提交,因为其中一些可能不再位于分支的基础和提示之间.但是,尖端仍将是与以前相同的最终状态。

在我的例子中, pull 请求( feature )分支了 master在我的请求之后,像这样:

A---B---C---D <<< master
\ \
\ E---F <<< feature (pull request)
\
G---H <<< 2.0.3

因此,当我从 master 更改 pull 请求的基础时至 2.0.3 ,它现在报告 pull 请求包括提交 C、D、E 和 F 而不仅仅是 E 和 F。但是我不希望 pull 请求中包含 C 和 D,所以我首先 merge master进入 2.0.3 .这给了这个:
A---B---C---D ---<<< master
\ \ \
\ \ E---F <<< feature (pull request)
\ \
G---H---I <<< 2.0.3

然后当我更改 feature 的基数时至 2.0.3 ,它仍然只是在 pull 请求中显示 E 和 F(超出 I 的额外代码),这正是我想要的。

我认为在 feature 的情况下分支 master之前 2.0.3 ,如果您更改 feature 的基础,您会看到一些提交从 pull 请求中消失。至 2.0.3 (两个分支的原始基础之间的提交,已经在 2.0.3 中)。但是实际上不会从存储库中丢失任何提交。

最佳答案

我不是 github 用户,而是 bitbucket,但这里工作的 git 概念是相同的,如果我没记错的话,这就是它的意思:
我们来看看下面的示例情况

A---B---C <<< master
\
D---E---F <<< feature-1
\
G---H <<< feature-2
在这里,一个 feature2 > master pull 请求将包含 4 次提交: D , E , GH .
如果现在您编辑 pull 请求以拥有 feature-1作为基础分支,您更新的 feature-2 > feature-1 pull 请求将仅列出 G , 和 H .
因此,当您刷新 pull 请求页面时, DE 已从 pull 请求范围中移除 .但是 pull 请求不可能从任何地方删除提交,这是一个“附加”操作,它只会创建新数据。
具有讽刺意味的是,该警告以某种方式触发了它试图阻止的事情:人们因丢失提交而 panic ,因为他们突然在列表中不再看到它们。 Github 想告诉你“你的提交只会从更改列表中删除,而不是从你的仓库中删除。”

关于git - 在 Github 上更改 pull 请求的基本分支时将删除哪些提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56605553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com