Magit-如何在不键入整个分支名称的情况下在本地签出远程分支?


12

我有一个远程分支机构remote-branch-long-name。当我以头盔完成率进行结帐时,我可以键入remote-branchorigin/remote-branch-long-name显示为一个选项。问题是要在本地检出该分支,实际上我不能切换到该分支,而我需要切换到remote-branch-long-name (without the origin/ prefix),因为helm没有提供作为完成选项,我必须手动输入整个分支名称。

在该用例中,我应该使用另一个功能吗?还是必须一起破解一个功能?

Answers:


22

听起来您要解决的问题不是您遇到的问题。Git不允许您在本地使用远程分支机构(origin/remote-branch-long-name您看到的只是一个跟踪分支;您不能直接使用它),并且Magit指导您实现预期的工作流程。

由于您想与origin/remote-branch-long-name您一起工作,因此应该运行magit-branch-and-checkoutb c)。选择origin/remote-branch-long-name,它将提示您输入本地分支名称,并且默认为“ remote-branch-long-name”。这使您本地分支需要进行更改。完成更改并推送到origin/remote-branch-long-name该位置时,将更新远程跟踪分支。

您可以在其中带有斜杠的本地分支机构使用,但是在本地分支机构名称中使用远程名称会使事情变得非常混乱。Git会记住从哪个远程分支签出了本地分支,因此您无需自己跟踪它。

要获得比我这里的答案更完整的解释(!),您会发现此是有关遥控器的良好概述。


8
我认为这里的脱节是Magit流与git流不同。如果你运行git checkout foo,而foo不是一个分支,但origin/foo是,git会创建一个新的分支foo,并设置它来跟踪origin/foo。因此git教您思考“我只是结帐foo,而git会做所有必要的事情”。但这不适用于magit;跑步magit-branch-and-checkout是必经之路。
zck

4

从magit v2.12.0开始,有一个命令magit-branch-checkout绑定到b l(Checkout本地分支),该命令完全可以满足您的需求。有关 详细信息,请参见文档

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.