zoukankan      html  css  js  c++  java
  • Git 如何 clone 非 master 分支的代码

    问题描述

    我们每次使用命令

    git clone git@gitlab.xxx.com:xxxxx.git
    

    默认 clone 的是这个仓库的 master 分支。如果最新的代码不在 master 分支上,该如何拿到呢?如下图所示,最新的代码可能在daily/1.4.1分支上,我们希望拿到这个分支上的代码。

    7f07c8f6deef169ef6be5103bbd3e932f8676bb1.png

    解决方法

    直接使用命令

    git branch -r #查看远程分支
    

    git branch -a #查看所有分支
    

    会显示

    origin/HEAD -> origin/master
    origin/daily/1.2.2
    origin/daily/1.3.0
    origin/daily/1.4.1
    origin/develop
    origin/feature/daily-1.0.0
    origin/master
    

    然后直接

    git checkout origin/daily/1.4.1
    

    就好了。。。

    git clone 默认会把远程仓库整个给clone下来; 
    但只会在本地默认创建一个master分支

    可以使用checkout命令来把远程分支取到本地

    或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支
    折叠展开复制代码

    $ git checkout -t origin/daily/1.4.1

    也可以使用fetch来做:

    $ git fetch origin python_mail.skin:python_mail.skin

    不过通过fetch命令来建立的本地分支不是一个track branch,而且成功后不会自动切换到该分支上- z) t: R4 p- s6 _2 d3 a
    注意:不要在本地采用如下方法:

    1. $ git branch python_mail.skin
    2. $ git checkout python_mail.skin
    3. $ git pull origin python_mail.skin:python_mail.skin

    因为,这样建立的branch是以master为基础建立的,再pull下来的话,会和master的内容进行合并,有可能会发生冲突... 

  • 相关阅读:
    java8新特性学习:stream与lambda
    Storm实践(一):基础知识
    Google Protocol Buffer入门
    zeromq实践
    maven实践--你所需要了解的maven
    springcloud实践(一)服务发现:Eureka
    职责链模式(chain of responsibility Pattern)
    代理模式 (Proxy Pattern)
    享元模式(Flyweight Pattern)
    外观模式(Facade Pattern)
  • 原文地址:https://www.cnblogs.com/jeacy/p/6439933.html
Copyright © 2011-2022 走看看