将特定的git提交从主分支移动到分支

3

我有一个特定的提交,被推送到了origin/master,但它还没有准备好。它应该进入一个现有的功能分支,最终将合并到主分支中。我如何从主分支中取出提交并将其移动到功能分支中?

这是我在远程分支中拥有的内容:

          a     B     c     d
master -  o --- o --- o --- o -->
                   \
newbranch -         - o --- o -->
                      p     q

需要将错误的提交 B 移动到 newbranch:

          a     c     d
master -  o --- o --- o -->
             \
newbranch -   - o --- o --- o -->
                B     p     q

这个能实现吗?

1
可能是重复的问题:如何使用Git将最近的提交移动到新分支? - Rufinus
你已经推送到了远程仓库吗?如果是这样,使用强制推送将会让你的团队其他成员感到不开心,因此你无法通过强制推送来实现这个目标。在这种情况下,你应该在master分支上执行git revert B命令。 - Oliver Charlesworth
@OliCharlesworth 是的,提交已经推送到了远程仓库。我已经更新了问题。 - amo
1个回答

3

如果您已经提交了代码,那么任何试图重写现有的代码库的尝试都需要使用force-push命令,这会让团队的其他成员感到沮丧。

因此,最好的解决方案是在master分支上提交一个撤销(revert)操作:

git checkout master
git revert B   # Or whatever the commit hash for B is

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接