是否可以不检查而快速前进另一个分支?

问题描述 投票:7回答:2

在git中,我有一个分支A。我创建另一个分支B,在其中创建一些提交。然后我想将分支A快进到分支B

我知道我可以签出A,并快进到B的最新提交。此操作需要对工作副本进行两次修改:首先返回到A,然后将工作副本还原到B。如果B上的新提交包含很多更改,则操作可能会非常缓慢。

是否可以不更改工作副本而快进另一个分支? (换句话说,仅移动A的指针)

git
2个回答
4
投票

Git为此提供了update-ref命令

git update-ref A B

注意:此命令是较低级别的Git命令之一,它不提供任何保护措施以防止您自己搞砸。如果B不是A的前移,它将仍然更新A,从而可能使提交不可访问并受到垃圾回收。


0
投票

如果您想快进将另一个分支移至当前的HEAD,您还可以:

git fetch . HEAD:another-branch

不幸的是,这不适用于提交ID,例如:

git fetch . TARGET_ID:another-branch

但是它适用于分支或标签名称。因此,我的解决方案是创建一个临时目标分支:

git branch target <your-target-ref-id>
git fetch . target:another-branch
git branch -d target

您可以在一行中执行此操作:

git branch t <your-target-ref-id> && git fetch . t:another-branch && git branch -d t

可以是提交ID,标记或分支名称。

最后,您可以将其放在脚本或git别名中。

© www.soinside.com 2019 - 2024. All rights reserved.