如何在没有"检查它的情况下获取远程分支"

时间:2017-03-29 13:17:51

标签: git branch fetch

我正在分支机构"分支机构A"并使用命令git branch我可以看到它是本地唯一的分支。

如果我使用git branch -a,我可以看到"遥控器/ origin / branch-B"

的远程副本

我想要做的是在本地带上分支-B,但我不想实际检查出来......我的意思是我可以做到这一点,然后检查我的其他分支回去,但它稍微因为我做了很多回购,所以更加痛苦。

我在想某种取件?但我无法弄清楚如何说出命令。有可能吗?

所以我有:

user@pc> git branch
* branch-A
  master

user@pc> git branch -a
* branch-A
  remotes/origin/branch-B
  remotes/origin/branch-A
  remotes/origin/master

我希望能够得到:

user@pc> git branch
* branch-A
  branch-B
  master

4 个答案:

答案 0 :(得分:6)

你可以做到这一点,一个班轮很简单。

git fetch <remote> <srcBranch>:<destBranch>

这将避免签出远程分支。

有关详细信息,请参阅此问题:

Merge, update, and pull Git branches without using checkouts

答案 1 :(得分:1)

您可以运行脚本来创建具有所有远程分支名称的新本地分支。

$ git fetch
$ for branch in `git branch -r | sed 's@origin/@ @'`;do `git branch  $branch origin/$branch`;done

git branch -r 显示所有远程分支
sed的@ origin / @ @'从分支名称的开头分割 origin / git branch $ branch origin / $ branch 创建一个包含origin / branch历史的新分支

现在查看所有本地分支

$ git branch

答案 2 :(得分:1)

我认为“将本地B分支”的含义有些含糊不清。

如果您看到origin/branch-B,那么您已经在本地拥有它。提交,它们包含的树,它们包含的文件......都已经在您的本地仓库中。您唯一拥有的是跟踪远程分支(branch-B)的本地分支(origin/branch-B)。

如果您不想检查branch-B,那么创建本地分支的原因并不多。您可以使用本地分支执行任何操作,您可以使用远程分支引用。 e.g:

git merge origin/branch_B

但是如果你想要一个,你可以创建它:

git branch --set-upstream branch_B origin/branch_B

答案 3 :(得分:-1)

您要搜索的命令是git fetch,并使用选项--all来获取所有远程分支。