V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
tangzs
V2EX  ›  Linux

如何下载git所有的分支,有没有现成的脚本?

  •  
  •   tangzs · 2013-10-08 13:01:25 +08:00 · 5906 次点击
    这是一个创建于 3846 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如服务器上,一个 repo 有 master, dev, test, release 等多个分支,
    默认情况下只会下载 master 分支,要checkout到其它才触发下载,
    如果一次性下载所有分支到本地,以方便离线工作,谢谢哈!
    7 条回复    1970-01-01 08:00:00 +08:00
    pythoner
        1
    pythoner  
       2013-10-08 13:09:37 +08:00
    git fetch --all
    jianghu52
        2
    jianghu52  
       2013-10-08 13:36:37 +08:00
    我最笨的方式是下载所有包。包括.git包。这样就有所有的版本了。^_^
    Jeremial
        3
    Jeremial  
       2013-10-08 16:04:40 +08:00
    据我所知,clone一次就会把整个remote仓库的信息全部download下来,只是默认会切换到master分支.

    如果是clone完毕的话,即使在离线的情况下,也可以使用 checkout -t origin/<branch> 来切换到远程分支.
    entertainyou
        4
    entertainyou  
       2013-10-08 16:29:40 +08:00
    try

    git branch -a | grep origin | grep -v HEAD | while read rb;do lb=$(echo ${rb} | cut -d/ -f 3-);git checkout -b $lb $rb;done
    tangqiaoboy
        5
    tangqiaoboy  
       2013-10-08 21:50:45 +08:00
    1楼正解,get fetch --all
    tangzs
        6
    tangzs  
    OP
       2013-10-14 11:12:38 +08:00
    用以下脚本解决:

    for branch in `git branch -a | sed -n '\=/HEAD$=d; \=/master$=d;s= remotes/==p'`; do
    git branch --track ${branch##*/} $branch
    done
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2798 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:17 · PVG 10:17 · LAX 19:17 · JFK 22:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.