Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git将远程分支提取到新的本地分支(使用一个命令)_Git_Github_Version Control - Fatal编程技术网

Git将远程分支提取到新的本地分支(使用一个命令)

Git将远程分支提取到新的本地分支(使用一个命令),git,github,version-control,Git,Github,Version Control,我有我的本地回购与*主跟踪远程A的*主。(远程A的*主节点是其唯一的活动分支。) 远程B现在有一个*prbranch,它有一些不在a/master中的额外工作。我的本地回购协议除了A(以及我的个人遥控器,仅用于推送)之外,没有任何对任何遥控器的引用 我如何才能a)将B/prbranch提取到本地回购中,以及B)使用相同的名称创建新的本地分支并自动更改 git fetch B prbranch正确地获取分支,但将其放入fetch_HEAD,我必须用它手动创建一个类似的命名分支 git pull B

我有我的本地回购与*主跟踪远程A的*主。(远程A的*主节点是其唯一的活动分支。)

远程B现在有一个*prbranch,它有一些不在a/master中的额外工作。我的本地回购协议除了A(以及我的个人遥控器,仅用于推送)之外,没有任何对任何遥控器的引用

我如何才能a)将B/prbranch提取到本地回购中,以及B)使用相同的名称创建新的本地分支并自动更改

git fetch B prbranch
正确地获取分支,但将其放入fetch_HEAD,我必须用它手动创建一个类似的命名分支

git pull B prbranch
当然没用,试图合并到当前的本地分支

而git clone--single branch B prbranch只是在当前repo的子文件夹中创建一个新的repo

那么,如何在一个命令中获取远程分支并创建相同的本地分支呢?这当然不难做到


(我的经验当然有限,因此我希望答案简单且“追溯性明显”。

以下命令将获取并创建本地分支,而无需创建远程跟踪分支:

git fetch <urlB> refs/heads/prbranch:refs/heads/prbranch
git fetch refs/heads/prbranch:refs/heads/prbranch

请参见文档中的。

使用
git remote add
将remote B添加为新的remote为什么要这样做?我只想一次获取这个任意分支,永远不要再使用远程-只需将获取更改为prBranch:prBranch,或者在之后手动创建一个指向fetch_HEAD的分支。啊,我明白了,与下面的答案相同。正如Andrew C所指出的,只有prBranch:prBranch起作用。我不理解refspecs的威力,最后一个参数不仅仅是一个分支名称:)我仍然有点希望我能做
git fetch B branch:
,并让git使用远程名称作为本地分支名称。。。但现在我只是变得挑剔:)没错,正如Andrew指出的,您至少需要prbranch:prbranch for remote branch to working branch。refspec将适用于
.git/refs
下的任何ref,因此有时最好将其详细说明以避免混淆。