是否可以“移动”分支?
例如:
第一个a
之后的情况:
git pull
更新A--B--C master
\
D--E--F working
分支后的情况:
master
现在是否可以移动我的A--B--C--D--E master
\
M--N--O working
分支并得到类似的信息(将更新后的working
分支和我的代码放在master
分支中)?:>
working
答案 0 :(得分:3)
是的,这可以通过@FreshD答复的变基来完成。尽管您的工作将保持不变,但您的git历史会发生变化。
所以最后您会得到类似的东西。
A--B--C--D--E master
\
M'--N'--O' working
达到相同结果的另一种方法是通过cherry-pick(我们创建一个新分支,然后从工作分支中cherry-pick我们丢失的提交)。
git checkout master
git pull
git checkout -b working-copy
git cherry-pick M
git cherry-pick N
git cherry-pick O
(如果有任何冲突,我们可以解决)。
请注意,上一个答案的完整命令是
git checkout master && git pull
git checkout working
git rebase master
答案 1 :(得分:2)
是的,可以使用rebasing完成。首先签出您的分支,然后重新定位到当前的母版。
git checkout working
git rebase master
现在您的分支基于当前的母版。如果您已经推送了工作分支,并想使用重新构建的版本再次推送,则必须强制推送。小心,因为无论那里有什么,这都会覆盖现有的原点。