二 克隆Git仓库

    1.1 从远程仓库中克隆整个代码仓库

mkdir Demo  //在当前路径下新建一个文件夹,用来存放将要拉取的整个代码库

cd Demo           //进入这个文件夹

repo init -u ssh://igerrit.storm:29418/Demo/manifest -b master

    //-u :指定一个URL,其连接到一个manifest仓库

    //-m:在manifest仓库中选择一个xml文件

    //manifest:manifest是远程仓库里的一份清单,init的时候就是按照这份清单从服务器进行同步的

    //ssh://igerrit.storm:29418/Demo/ :是一个远程服务器的地址,地址可以是私人的也可以是共有的,共有的表示代码是公开的

     //-b:表示后接分支名,可以是master,也可以是其他分支

repo sync //这是一个封装的命令,用来同步代码。 上一步应该用时比较少,这一步用时较长

repo start master  --all  //这也是一个封装的命令,用来切分支的。这一步不可缺少 ,意为将拉下来的版本库都切换到master分支,如果不做这一步,克隆下来的所有仓库默认是no branch状态,容易导致后面工作时添加的代码丢失

    1.2 克隆单个仓库

git clone https://github.com/×××  从远程库中克隆,克隆一个版本库到新的目录,可以在当前目录新建一个文件夹,也可以git clone [地址] [本地目录]

    git clone ssh://igerrit.storm:29418/tools/repo.git // 同上,

    之后 git pull origin master //origin是远程主机,master是默认分支

    要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

    Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快

    单一仓库的更新可以使用git pull命令。

    repo init完成的操作如下:

  (1):完成repo 工具的完整下载,执行的repo脚本只是引导程序

  (2):克隆清单库manifest.git(地址来自于-u参数)

  (3):克隆的清单库位于manifest.git中,克隆到本地.repo/manifests.清单,.repo/manifest.xml只是符号链接,它指向.repo/manifests/default.xml文件,

    repo sync:用于参照清单文件.repo/manifest.xml克隆并同步版本库。如果某个版本库尚不存在,则执行repo sync命令相当于执行git clone。如果项目版本库已经存在,则相当于执行下面的两条指令:

  (1):git remote update //相当于对每一个remote源执行了fetch操作

  (2):git rebase origin/branch //针对当前分支的跟踪分支执行rebase操作

    repo start:创建并切换分支,是对git checkout -b命令的封装 //如果存在分支则切换分支,若不存在则创建并切换

区别是repo start 是在清单文件设定分支的基础上创建特性分支,git checkout是在当前所在分支的基础上创建特性分支,如果是针对于整个版本库,那么相当于 repo forall -c git checkout -b

题外:在使用这些命令克隆仓库之前,我们是需要配置一些环境,如ssh的key,用户名,邮箱名等等

如果公司使用的是私有github,在初始化仓库之前需要若是初始化仓库的时候出现提示仓库已经初始化,那么可以尝试删除本地的.repo

Git clone 常见用法的更多相关文章

  1. GIT 的常见用法

    git init 新建代码库 git clone新建项目 git branch 查看分支 git config 显示配置 git config -e 显示配置文件 git config user.na ...

  2. Git push 常见用法

        Git push 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,g ...

  3. Git commit 常见用法

        Git commit git commit 主要是将用户通过git add命令添加到暂存区里的改动给提交到本地的版本库,关于版本库的构成可以查看我先前的笔记. 每次提交我们都会在本地版本库生成 ...

  4. Git stash 常见用法

    Git stash git stash这个命令可以将当前的工作状态保存到git栈,在需要的时候再恢复 1.1 git stash  保存当前的工作区与暂存区的状态,把当前的工作隐藏起来,等以后需要的时 ...

  5. Git branch 和 Git checkout常见用法

    git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.Git branch 一般用于分支的操作,比如创建分支,查看分支等等, 1.1 git branch 不带 ...

  6. Git diff 常见用法

      Git diff 用于比较两次修改的差异 1.1 比较工作区与暂存区 git diff  比较的是单个仓库的工作区与暂存区的差别,repo diff是对git diff的封装,用来分别显示各个项目 ...

  7. Git reset 常见用法

    Git reset 1. 文件从暂存区回退到工作区 2. 版本回退 1.1 git reset HEAD filename :回退文件,将文件从暂存区回退到工作区 //也可以使用 git reset ...

  8. Git add 常见用法

        Git add   git add [参数]  [--] <路径> //作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用gi ...

  9. Git branch && Git checkout常见用法

    https://www.cnblogs.com/qianqiannian/p/6011404.html git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.G ...

随机推荐

  1. mybatis+spring boot, mapper 提示Could not autowire. No beans of … type found

    工具及背景: IntelliJ IDEA 2016.1.3 Ultimate.spring boot, maven项目,利用mybatis 注解的方式查询mysql. 业务逻辑关系:controlle ...

  2. cookie的常用操作

    cookie介绍: 1. cookie的简单介绍就是把用户的登录信息缓存在本机的浏览器中,且最大容量为4KB, 2. 这种存储是不安全的,通常一般会进行加密处理,但是依旧不能做到安全,所以一般要优先考 ...

  3. Http请求处理流程 管道流程 MVC扩展HttpModule

    HttpApplication  封装了管道处理请求的所有事件 HttpModule 对HttpApplication中事件的扩展 HttpHandler   处理程序  每个请求都要经过Handle ...

  4. 关于VUE调用父实例($parent) 根实例 中的数据和方法

    this.$parent或者 this.$root 在子组件中判断this.$parent获取的实例是不是父组件的实例 在子组件中console.log(this.$parent)  在父组件中con ...

  5. SpringBoot的文件上传

    先在src/main/resources下新建一个static目录用以存放html页面,简单的html页面如下 <!DOCTYPE html> <html> <head& ...

  6. eclipse配置tomcat后出现:java virtual machine launcher Error:Could not ……,Program will exit.

    原贴在stack overflow上:https://stackoverflow.com/questions/50085750/apache-tomcat-9-x-not-working-with-e ...

  7. python Django 项目创建

    注:后续如不特色说明,使用python版本均为python3 创建项目 django-admin startproject projectName 启动服务 python manage.py runs ...

  8. alfred

    1.alfred怎么设置默认的搜索项. https://www.zhihu.com/question/20205127 2.

  9. xlua怎么样hotfix C#中的重写方法???

    问题的来源之这样的: 线上项目遇到一个问题,就是子类 override 了父类的一个 virtual 方法,并且调用到了父类里面的 virtual 方法.现在子类  override 的方法里有一些错 ...

  10. 最长连续子序列 Longest Consecutive Sequence

    2018-11-25 16:28:09 问题描述: 问题求解: 方法一.如果不要求是线性时间的话,其实可以很直观的先排序在遍历一遍就可以得到答案,但是这里明确要求是O(n)的时间复杂度,那么就给了一个 ...