是否可以“移动”分支?

时间:2020-04-04 20:59:05

标签: git gitlab branch

是否可以“移动”分支?

例如:

第一个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

2 个答案:

答案 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

现在您的分支基于当前的母版。如果您已经推送了工作分支,并想使用重新构建的版本再次推送,则必须强制推送。小心,因为无论那里有什么,这都会覆盖现有的原点。