Git-如何在分支之间移动提交

时间:2019-10-16 08:05:51

标签: git

我有以下内容:

branch0  ---  commit1 --- commit2 --- branch2 --- commit3
   |
branch1
   |
commit4
   |
commit5

我想将其更改为以下内容(即将所有内容从commit1中移出):

branch0
   |
branch1
   |
commit4
   |
commit5  ---  commit1 --- commit2 --- branch2 --- commit3

我尝试使用rebasecherry-pick,但我的知识不足,所以欢迎提出任何建议。

谢谢

更新

从下面的mimikrija的答案中,我尝试以下操作:

git checkout branch0
git checkout -b temp
git rebase branch1
## fix conflicts
git add .
git commit -am "rebase applied"
git rebase --continue
git branch -mv -f branch1

我收到以下错误:

  

致命:无效的分支名称:'HEAD'

git status
rebase in progress; onto 89844e6
You are currently rebasing branch 'temp' on '89844e6'.
  (all conflicts fixed: run "git rebase --continue")

2 个答案:

答案 0 :(得分:0)

您需要做的就是从分支1拉到分支2

步骤:

git checkout branch2
git pull origin branch1

答案 1 :(得分:0)

假设这些都是本地分支机构(尚未发布,或已发布但未被其他任何人使用),则可以采取这些步骤。

git checkout branch2

git checkout -b temp基于branch2

创建一个临时分支

git rebase branch1现在您已经在图表中绘制了内容,但是它被称为temp

git branch -mv -f branch1强制重命名分支

最后,从branch2中删除提交:

git checkout branch2

git reset --hard branch0