Git Move 2旧提交到现有分支

时间:2019-01-21 13:04:40

标签: git

我不想破坏某些东西,所以我想在这里问。我不小心在一个分支上创建了一个功能进行测试,我尝试将提交移至新分支,并使用git rebase将其基于master,但是我将3个提交放在新功能的分支中,如下所示:< br /> N = New feature
T = Test branch
M = Master

M
|\
| T
N - T1 - T2 - N1

我想得到:

M
|\
| T - T1 - T2
N - N1

我已经尝试过一些重新设置,但是在原点,我只有分支Test和三个提交。

1 个答案:

答案 0 :(得分:2)

让我们分解这个问题:复制并删除提交。您不能直接“移动”。

首先,使用T将两个T提交重复到cherry-pick分支。您可以抓住要移动的两个提交的SHA,然后按照以下步骤操作

git checkout test
git cherry-pick <commit 1> <commit 2>

然后,将其从N分支中删除

git checkout new
git rebase HEAD~4

找到两个提交,并使用从Git弹出的文本编辑器将其删除,然后保存文件并退出。 Git会做剩下的事情。