为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取所有Git分支

如何获取所有Git分支

Git
慕斯709654 2019-07-25 10:45:59
如何获取所有Git分支我克隆了一个Git存储库,它包含大约五个分支。但是,当我这样做时,git branch我只看到其中一个:$ git branch* master我知道我可以git branch -a看到所有分支,但是我如何在本地拉出所有分支,所以当我这样做时git branch,它显示以下内容?$ git branch* master* staging* etc...
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

您可以从所有遥控器中获取所有分支,如下所示:

git fetch --all

这基本上是一种权力移动

fetch更新远程分支的本地副本,这样对于本地分支机构来说总是安全的但是

  1. fetch不会更新本地分支(跟踪远程分支); 如果你想更新你的本地分支,你仍然需要拉每个分支。

  2. fetch不会创建本地分支(跟踪远程分支),您必须手动执行此操作。如果要列出所有远程分支: git branch -a

更新当地的分支机构,其跟踪远程分支机构:

git pull --all

但是,这仍然不够。它仅适用于跟踪远程分支的本地分支。要跟踪所有远程分支,请执行此oneliner BEFORE git pull --all

git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done

TL; DR版本

git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; donegit fetch --allgit pull --all

(看起来拉取所有遥控器的所有分支,但我总是首先获取以确定。)

仅当服务器上存在未由本地分支跟踪的远程分支时,才运行第一个命令。

PS AFAIK git fetch --allgit remote update是等价的。



卡米尔索佐的评论,人们发现有用。

我不得不使用:

for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done

因为你的代码创建了名为的本地分支,origin/branchname并且每当我提到它时,我得到的“refname”origin / branchname'都是不明确的。


查看完整回答
反对 回复 2019-07-25
?
繁花如伊

TA贡献2012条经验 获得超12个赞

列出远程分支:
git branch -r

您可以将它们作为本地分支机构查看:
git checkout -b LocalName origin/remotebranchname


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 6861 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信