gpt4 book ai didi

git - 如何将父级添加到 git 中的提交?

转载 作者:行者123 更新时间:2023-12-05 05:26:06 25 4
gpt4 key购买 nike

我最近重新分支 - 也就是说,从 master 中创建了一个新分支并 merge 到一个功能分支中,例如TASK-123,新分支 TASK-123-b 替换了 merge 到其中的功能分支。每当功能分支与 master 发生冲突时,这是我们 git 工作流程中的常规操作。

当我将 TASK-123 merge 到 TASK-123-b 时,当然会发生 merge 冲突,我已解决并提交。新分支 TASK-123-bTASK-123 中的提交 merge ,只有一个父级:master

我如何修改提交,使 masterTASK-123 都是其父项?我假设将涉及 git rebase,但除此之外我不知道如何将父分支/提交添加到提交。

我的提交历史目前看起来是这样的:

    master -*---*-----* ...
\ \
TASK-123 *---*-* \
\
TASK-123-b * ...

我希望我的提交历史看起来像这样:

    master -*---*-----* ...
\ \
TASK-123 *---*-* \
\ \
TASK-123-b \---* ...

注意:我还没有将 TASK-123-b 推送到远程,因此对它进行 rebase 提交应该不会给我的同事带来任何问题。

最佳答案

您需要重新将 TASK-123 merge 到 TASK-123-b 中,因为它看起来不像您希望的那样工作。为此,请在 merge 之前在 TASK-123-b 中找到提交哈希,并在那里重置您的分支指针:

$ git checkout -B TASK-123-b abc123

然后重复 merge :

$ git merge TASK-123

如果您重置分支指针,旧的 merge 提交将被孤立并且不会显示在日志中,除非您特别将其作为参数提及。如果您想取回它,散列将记录在 reflog 中,或者您可以将散列复制到某个地方,并在您决定需要时使用 checkout -B 命令将其放回原处。

如果不想再次解决冲突,那么不要重新设置分支指针,重新 merge 即可:

$ git checkout TASK-123-b
$ git merge TASK-123

并删除旧分支:

$ git branch -d TASK-123

关于git - 如何将父级添加到 git 中的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28200464/

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