美文网首页
Git---获取仓库及协议

Git---获取仓库及协议

作者: WorldPeace_hp | 来源:发表于2018-01-17 23:15 被阅读0次
  • 初始化本地仓库
    如果需要使用 Git 来对现有的项目进行管理,你只需要进入该项目现有目录并输入:
    $ git init
    要添加一个本地仓库作为现有 Git 项目的远程仓库,可以这样做:
    $ git remote add local_proj /opt/git/project.git

  • 克隆远程仓库
    在当前目录下克隆一个名为libgit2的目录,可以用下面的命令:
    $ git clone https://github.com/libgit2/libgit2
    如果想在克隆远程仓库时自定义本地仓库名,你可以使用如下命令:
    $ git clone https://github.com/libgit2/libgit2 mylibgit

  • 多种数据传输协议
    Git 支持多种数据传输协议:本地协议(Local protocol)http协议git协议ssh协议

    • 本地协议:
      如果你使用一个共享的文件系统,就可以在一个本地文件系统中克隆仓库,推送和获取。克隆的时候只需要将远程仓库的路径作为 URL 使用,比如下面这样:
      $ git clone /opt/git/project.git
      或这样:
      $ git clone file:///opt/git/project.git

    • https协议:
      $ git clone https://github.com/libgit2/libgit2
      优点:
      使用 HTTP 协议的好处是易于架设。几条必要的命令就可以让全世界读取到仓库的内容。花费不过几分钟。HTTP 协议不会占用过多服务器资源。因为它一般只用到静态的 HTTP 服务提供所有数据,普通的 Apache 服务器平均每秒能支撑数千个文件的并发访问 — 哪怕让一个小型服务器超载都很难。
      你也可以通过 HTTPS 提供只读的仓库,这意味着你可以加密传输内容;你甚至可以要求客户端使用特定签名的 SSL 证书。一般情况下,如果到了这一步,使用 SSH 公共密钥可能是更简单的方案;不过也存在一些特殊情况,这时通过 HTTPS 使用带签名的 SSL 证书或者其他基于 HTTP 的只读连接授权方式是更好的解决方案。
      HTTP 还有个额外的好处:HTTP 是一个如此常见的协议,以至于企业级防火墙通常都允许其端口的通信。
      缺点:
      HTTP 协议的消极面在于,相对来说客户端效率更低。克隆或者下载仓库内容可能会花费更多时间,而且 HTTP 传输的体积和网络开销比其他任何一个协议都大。因为它没有按需供应的能力 — 传输过程中没有服务端的动态计算 — 因而 HTTP 协议经常会被称为傻瓜(dumb)协议。

    • git协议:
      $ git clone git@gitlab.com:ios-public/project.git
      这是一个包含在 Git 软件包中的特殊守护进程; 它会监听一个提供类似于 SSH 服务的特定端口(9418),而无需任何授权。打算支持 Git 协议的仓库,需要先创建 git-daemon-export-ok 文件 — 它是协议进程提供仓库服务的必要条件 — 但除此之外该服务没有什么安全措施。要么所有人都能克隆 Git 仓库,要么谁也不能。这也意味着该协议通常不能用来进行推送。你可以允许推送操作;然而由于没有授权机制,一旦允许该操作,网络上任何一个知道项目 URL 的人将都有推送权限。不用说,这是十分罕见的情况。
      优点:
      Git 协议是现存最快的传输协议。如果你在提供一个有很大访问量的公共项目,或者一个不需要对读操作进行授权的庞大项目,架设一个 Git 守护进程来供应仓库是个不错的选择。它使用与 SSH 协议相同的数据传输机制,但省去了加密和授权的开销。
      缺点:
      Git 协议消极的一面是缺少授权机制。用 Git 协议作为访问项目的唯一方法通常是不可取的。一般的做法是,同时提供 SSH 接口,让几个开发者拥有推送(写)权限,其他人通过 git:// 拥有只读权限。 Git 协议可能也是最难架设的协议。
      ``

    • 生成ssh key:

终端:

//进入到.ssh目录下
whp-MacBook-Pro:~ whp$ cd ~/.ssh
whp-MacBook-Pro:.ssh whp$ ls
known_hosts
//生成ssh key(邮箱)
whp-MacBook-Pro:.ssh whp$ ssh-keygen -t rsa -C whp@xxx.com
//回车后(输入密码)
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/whp/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/whp/.ssh/id_rsa.
Your public key has been saved in /Users/whp/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:4MFouvpaN2t9mm0bn0PKInD1mK3nxAx01iCQl5uEdpQ whp@xxx.com
The key's randomart image is:
+---[RSA 3072]----+
|    .=oo.        |
|    +oE. o       |
|   .o+=oo .      |
|   o o+=         |
|  .  .o=S        |
|  ... o+o .      |
|  ooo. o=o       |
| o .oo++*o..     |
|oo....oB+.o.     |
+----[SHA256]-----+
whp-MacBook-Pro:.ssh whp$ ls
id_rsa      id_rsa.pub  known_hosts
whp-MacBook-Pro:.ssh whp$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCuRx60f3VoCufnl96DSZZTRuVZV8ixRji3080gGz5MQA2TD78rUZMYZE/vDanvKO67vGPVa7fZfC17HMCH6EzrS+mSAzTWl3kHrMRkIbzXPbrBPWej5hf6CADdigSf9omQ5Y0RAqEEb2w7+4vSK8OMvoGtX3u9V46J78We2mkXCqxl472+X0eMee6r40kB03aWg0fSVLDc1+0C3vBpQOnCLiaCuonq+PXtDdQFqR5bYPTzZS8Qt/9PwyOTTM60uHt38Vbggw/J939MpwQP6q5NggRR/GOYKu3PtnCltVRidaJVn+QEi66s3O5Iey9j6XxVBlXmvp4cMVlrvmCYZJZc5ToOVsiBki3PyE9gk4Xe9p/c3aHc58mIOSzGHT3lq4liX19YY8IQWPUiYXjgoMh+nWqncPWx0uPKGy0GBbenBFMWtFaHuFnoWDu0DbrNTBYBdfYl1QwUMEUCMsVGMmX2pmJ1skmnPV26v2jlzDjNS9O2588MbbWSMBl4yL8efik= whp@xxx.com
whp-MacBook-Pro:.ssh whp$ 
  • ssh协议:
    $ git clone ssh://user@server/project.git
    优点:
    使用 SSH 的好处有很多。
    首先,如果你想拥有对网络仓库的写权限,基本上不可能不使用 SSH。其次,SSH 架设相对比较简单 — SSH 守护进程很常见,很多网络管理员都有一些使用经验,而且很多操作系统都自带了它或者相关的管理工具。再次,通过 SSH 进行访问是安全的 — 所有数据传输都是加密和授权的。最后,和 Git 及本地协议一样,SSH 也很高效,会在传输之前尽可能压缩数据。
    缺点:
    SSH 的限制在于你不能通过它实现仓库的匿名访问。即使仅为读取数据,人们也必须在能通过 SSH 访问主机的前提下才能访问仓库,这使得 SSH 不利于开源的项目。如果你仅仅在公司网络里使用,SSH 可能是你唯一需要使用的协议。如果想允许对项目的匿名只读访问,那么除了为自己推送而架设 SSH 协议之外,还需要支持其他协议以便他人访问读取。

相关文章

  • Git---获取仓库及协议

    初始化本地仓库如果需要使用 Git 来对现有的项目进行管理,你只需要进入该项目现有目录并输入:$ git init...

  • Git命令集---学会这些,让你git中"横行"

    1.git init(将本地文件初始化成git可管理的仓库,工作区会出现.git---版本库) 2.git add...

  • 2、docker命令篇

    一、镜像 1、获取镜像 #docker pull NAME[:TAG] 默认会选择latest标签,及下载仓库中...

  • 仓库

    仓库 1、获取仓库信息 获取仓库信息需要仓库拥有者帐号和仓库名,且该仓库已设置响应事件,未设置响应事件是无法访问的...

  • 生成公钥秘钥并获取公钥

    Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥...

  • sourceTree问题汇总

    使用ssh协议提交失败,切换回https协议提交就好了。 修改仓库协议地址,如下图:菜单栏仓库 选中路径就可以编辑...

  • Docker镜像常用命令

    获取镜像 获取指定版本的镜像 获取最新镜像 如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址: 查看镜...

  • Git-第二章节-指令

    指令 1.1 获取仓库1.2 文件更新到仓库1.3 获取提交历史1.4 撤销修改1.5 远程仓库1.6 标签 1....

  • 码云生成/添加SSH公钥步骤

    码云提供了基于SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。 步骤...

  • 构建

    构建 1、获取仓库构建信息 获取仓库构建信息需要仓库拥有者帐号和仓库名。 若该公共仓库已设置响应事件,是不需要用户...

网友评论

      本文标题:Git---获取仓库及协议

      本文链接:https://www.haomeiwen.com/subject/baauoxtx.html