我有主分支和分段分支。
现在通常的工作流程是主要的新变化然后从暂存我运行
git rebase master
。
然而,由于我的部署基础架构的性质,我不得不提交一大堆修复,因为我直接调试到临时分支。什么是将这些变化带回主人的正确方法,以便我的未来git rebase
能够正常运作。
答案 0 :(得分:1)
Rebase staging到master。你会有这个:
|
master - o
|
x
|
x - staging
你想要这个:
|
o
|
x
|
master - x - staging
您只需要执行一项操作。将master设置为指向staging指向的同一提交。有多种方法可以将master设置为与staging相同的提交;这是一个:
git checkout master
git reset staging
简单拉动也应该是等同的。由于master是staging的祖先,因此合并分段将是一个快进,除非您已在某处配置--no-ff
,我们可以使用--ff-only
检测到它:
git checkout master
git pull --ff-only staging
编辑:如果有提交你不想添加回master,创建一个新的分支,然后使用rebase -i来保持需要像这样返回master的提交:
git checkout staging
git checkout -b mypics
屈服
|
master - o
|
y
|
mypics - x - staging
rebase mypics,删除y,创建x':
git rebase -i master
# Drop the lines with commits you don't want to send back to master.
|
master - o
| \
y x' - mypics
|
x - staging
然后将master设置为指向与mypics相同的提交,使用reset或pull,如上所述。 然后放下mypics:
git checkout master
git reset mypics
git branch -D mypics