有没有办法在git中快速签出另一个分支?

有没有办法在git中快速签出另一个分支?,git,Git,我现在正在做一个网络项目。 有几个分支;开发用于调试的分支、用于新功能的功能分支等。 QA测试人员需要同时在两个分支上进行测试,因此当测试人员告诉我们时,程序员必须切换分支,这太麻烦了。 有什么方法可以随时切换分支吗?可以加快工作树的更新速度 正如ElpieKay*和phd在上面的评论中所建议的,避免每次需要检查另一个分支上的任何内容时都要等待加载整个工作树的一个好方法是 基本上,有: git worktree add any/chosen/path …将此给定路径指定为附加工作树的基本目录,

我现在正在做一个网络项目。 有几个分支;开发用于调试的分支、用于新功能的功能分支等。 QA测试人员需要同时在两个分支上进行测试,因此当测试人员告诉我们时,程序员必须切换分支,这太麻烦了。
有什么方法可以随时切换分支吗?

可以加快工作树的更新速度

正如ElpieKay*和phd在上面的评论中所建议的,避免每次需要检查另一个分支上的任何内容时都要等待加载整个工作树的一个好方法是

基本上,有:

git worktree add any/chosen/path
…将此给定路径指定为附加工作树的基本目录,准备承载另一个分支,而另一个分支已在主树中签出。(当然不限于两张,所有细节请查看链接的上述单据)


以方便键入

如果您必须定期在两个分支之间切换,一个快捷方式将非常方便:

# check out the previously checked out branch
git checkout -
因此,当您在两个分支之间来回切换时,首先

git checkout feature
git checkout develop
在这之后,每个
git checkout-
只需在2之间切换。(仅使用“向上”键一次或几次可获得额外积分,因为您每次都需要同一行)

更不用说大多数用户最终将
checkout
化名为一个或两个字母的变体,因此它只是非常短的:

git co -

*(嘿,ElpieKay,你应该得到答案这一部分的任何代表**,这是最重要的,所以写一个答案,我会删除这一部分,这才公平)


**(…这并不是说目前在这个答案上获得了很多声誉,但是;-)

试试
git-worktree
。它允许您签出对分离文件夹的多个修订。签出对分离文件夹的多个修订,从而交换磁盘空间,以便使用
cd
而不是@ElpieKay告诉您的
git checkout
git worktree切换分支的速度和便利性,这是最好的方法。可惜他没有提出答案……我试试这个。谢谢@ElpieKay!值得一提的是,
git worktree
也可能是a**中的一个难题——它不喜欢两个worktree指向同一个分支。我感到很失望,因为它有时会扼杀我的工作流程。YMMV.:-)@我同意。我从未有过这样一种情况,即好处(工作树更新时间)实际上达到或超过了成本(磁盘空间和潜在错误)。但更大的回购很可能会产生另一个比率。。。