首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >调整单个Git提交的基数

调整单个Git提交的基数
EN

Stack Overflow用户
提问于 2013-02-01 05:41:23
回答 3查看 92.7K关注 0票数 135

有没有办法将单个提交从一个分支重新定位到另一个分支?

我有这样的分支结构:

代码语言:javascript
复制
-- -- -- -- -- (Master)
            \
              -- -- -- -- -- XX (Feature-branch)

我所要做的就是将Feature-branch的最后一次提交重新设置为主提交,并回滚Feature-branch one commit。

代码语言:javascript
复制
-- -- -- -- -- XX (Master)
            \
              -- -- -- -- -- (Feature-branch)

我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-01 05:46:51

你可以挑选XX来掌握。

代码语言:javascript
复制
git checkout master
git cherry-pick <commit ID of XX>

并使用git重置从feature分支中删除最后一次提交。

代码语言:javascript
复制
git checkout Feature-branch
git reset --hard HEAD^
票数 135
EN

Stack Overflow用户

发布于 2013-02-01 05:46:00

代码语言:javascript
复制
git rebase --onto master branch~1 branch 

这就是说“在主分支的顶端重新设定上一次分支和分支之间的提交范围(即XX提交)”。

在此操作之后,提交XX上的branch提示将被移动,因此您希望使用以下命令将其重新设置

代码语言:javascript
复制
git checkout branch
git reset --hard branch@{1}^

它表示“将分支提示重置为在其先前状态之前的提交”

所以选择樱桃是一个更简单的解决方案。

票数 115
EN

Stack Overflow用户

发布于 2017-10-27 03:53:15

实际上,这很容易做到。解决方案是做一个交互式的rebase,并“丢弃”所有你不想包含在rebase中的提交。

git rebase -i <target_branch>,其中target_branch是您要重设基地的分支

然后,您将编辑打开的文件,并对您想要的提交进行pick,对您不想带来的所有提交执行drop (简称为d )。

票数 72
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14635672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档