gpt4 book ai didi

git pick 从另一个分支提交并把它放在当前提交下

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

假设我有分支 AB

A: a b c d
B: a b c e

我想从分支 B 获取提交 e 并将其放在分支 A 的提交 d 下。所以我最后的结果应该是这样的

A: a b c e d

怎么做?

我是否应该先cherry-pick提交e,将它放在d的顶部,然后切换d<的位置e 提交还是有其他方式?它也可能会有一些冲突 - 如何在不创建额外提交的情况下解决它们?

最佳答案

您可以在分支 B 之上挑选提交 d。如果您不想修改分支 B,请创建分支 B 的副本作为分支 C 并在那里进行适当的更改。很快:

git checkout -b C B // copy branch B to new branch C
git cherry-pick d // we are on C branch, cherry-pick d commit
//resolve conflicts as git is describing

您也可以将 e 提交到分支 A 上,但您可能被迫解决两个冲突而不是一个:

git checkout A
git cherry-pick e //we are on A branch, cherry-pick e
//some conflicts may happen
git rebase -i c // rebase on c commit, this is the last one with proper order
//this will require to edit rebase picks - you can order them as you want
//after leaving editor, you might need to resolve conflicts again

如果发生任何冲突,git 将允许您解决它并且更改将保存在提交 d 中(它实际上不会是同一个提交,因为它将有新的父级并且它将包含解决冲突的更改)。命令模式下的 git 将为您提供有关在挑选时解决冲突的所有必要提示。

如果你真的需要改变分支A(这应该不是必需的),按照我上面写的做,硬重置分支A到分支C

//Do as in first case
git checkout A
git reset --hard d2 //d2 is d commit on C branch

关于git pick 从另一个分支提交并把它放在当前提交下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32117035/

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