我有以下内容:
branch0 --- commit1 --- commit2 --- branch2 --- commit3
|
branch1
|
commit4
|
commit5
我想将其更改为以下内容(即将所有内容从commit1
中移出):
branch0
|
branch1
|
commit4
|
commit5 --- commit1 --- commit2 --- branch2 --- commit3
我尝试使用rebase
和cherry-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")
答案 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