gpt4 book ai didi

git - merge 一个提交落后的 pull 请求

转载 作者:太空狗 更新时间:2023-10-29 13:09:33 25 4
gpt4 key购买 nike

我 fork 了一个 Github 存储库并做了几天的一些更改,从未从原始存储库(我创建了一个 fork 的存储库)中 pull 。

现在我向原始仓库发出了 pull 请求。我发现 repo 在我 fork 后得到了另一个提交。

所以我的问题是,如果 repo 的所有者接受 pull 请求,他之后所做的提交会保留还是他的 repo 会成为我的 fork 的相同副本?

如果是后者,那你能告诉我如何删除他所做的提交吗?

最佳答案

两个分支的所有更改都将出现在历史记录中:

A-B------C----M--...
\-X-Y---Z-/

XYZ 是您的提交,C 是您缺少的提交。提交 M 是一个 merge 提交,它将包含您在其中的所有更改(并可能修复与 C 的任何 merge 冲突)。您的提交将保持不变,之后 M 将包含来自 CXY 的所有更改Z.

或者,repo 维护者可以rebase你的分支然后 merge 它:

A-B-C---------M--...
\-X-Y-Z-/

当一切顺利时,M 的状态将与进行常规 merge 时的状态完全相同。然而,XYZ 将分别看起来像是源自 C(它们的 SHA1 值将也改变)。

这两种方法同样有效,如果您遗漏了相当多的提交(即在开发几周后),建议使用 rebase

请注意:如果您的分支没有完全 merge 并且冲突不容易修复,则 repo 维护者可能会要求进行 merge 或 rebase 。提供可 merge 分支是您的工作。

在这种情况下,只需获取您正在请求 pull 的分支的最新版本,然后自己尝试 merge :

git checkout your-branch
git pull upstream master

git checkout your-branch
git pull --rebase upstream master

之后,该分支将干净利落地 merge 到上游。只需为您新 merge 的分支发布一个新的 pull 请求。

关于git - merge 一个提交落后的 pull 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19976844/

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