zoukankan      html  css  js  c++  java
  • git同步远程仓库的所有分支

    git clone克隆远程仓库默认是只克隆master分支,当想把远程仓库上的所有的分支都克隆下来的话,有以下几种方法。

    使用远程仓库github上的LSMLIB仓库为例.该仓库在github上一共有三个分支:master(default),dev-samrai,dev.

    在使用git的过程中都使用ssh协议进行传输,可以进行免密登录。

    方法一

    1. 使用 git clone克隆仓库,默认克隆下来的远程仓库的整个仓库,但是只会在本地创建一个master分支。

      git clone git@github.com:ktchu/LSMLIB.git
      
    2. 查看克隆下来代码的分支情况,同时可以查看远程仓库的分支情况。

      git branch -a    # 查看所有的分支(包括本地分支和远程分支)
      * master
        remotes/origin/HEAD -> origin/master
        remotes/origin/dev
        remotes/origin/dev-samrai
        remotes/origin/master
      

      可以看出远程仓库一共有三个分支(remotes/origin/devremotes/origin/dev-samrairemotes/origin/master),并且远程仓库的HEAD指针目前指向的是remotes/origin/master分支。

    3. 新建两个本地分支与远程分支相同。

      git checkout -b dev origin/dev #本地新建一个分支(dev),并且切换到该分支 与远程分支(origin/dev)对应
      git checkout -b dev-samrai origin/dev-samrai # 同理
      

    当新建完对应的分支,并且切换回来后,发现本地的对应工作区的内容已经同步成对应分支的内容了。

    说明git clone克隆了所有的数据,只是需要将对应的分支形成接口,切换成对应的分支数据了。

    方法二

    使用如下命令,其实与上面的操作是类似的,在本地仓库下,新建分支与远程仓库的分支一一对应,然后进行同步所有分支即可。

    git clone git@github.com:ktchu/LSMLIB.git
    cd LSMLIB
    git branch -r | grep -v '->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
    git fetch --all
    git pull --all
    

    参考链接

    1. git从远程仓库中获取所有分支

    2. git从远程仓库获取所有分支

    3. How to clone all remote branches in Git




  • 相关阅读:
    03-es6语法 Promise 和 es8语法 async await 的了解和基本使用
    02-遍历数组的方法
    01-操作数组的方法
    position 几个属性的作用
    javascript---split 和 join 的区别
    微信sdk (1)
    php获取post参数的几种方式
    linux循环递归设置权限
    php汉字截取
    php汉字生成首字母
  • 原文地址:https://www.cnblogs.com/exmyth/p/14993783.html
Copyright © 2011-2022 走看看