文章首发于【博客园-陈树义】,点击跳转到原文《高效开发技巧:为什么你下载Git项目这么慢?》

笔者所在公司采用的是 GitLab 进行版本管理,但许多同事下载 Git 项目的路径是这样的:

打开浏览器 -> 输入网址 -> 查找项目地址 -> 复制项目地址 -> 切换到命令行 -> 输入账号密码 -> 下载

这样每次去下载一个 Git 项目时,我们都要做一些重复性的动作,很浪费时间。但实际上,我们只需要进行一些简单的配置,只需要短短 5 分钟,就可以将上面的路径缩短成这样:

自动列出所有项目地址 -> 选择项目 -> 下载

这样可就大大减少了我们的重复劳动,提高了我们的效率。

熟悉 Git 的朋友应该猜出来了,第一种方式就是:HTTPS 协议下载,第二种方式就是:SSH 协议下载 + Hosting Provider。

下面我们就来讲讲如何使用 SSH 协议下载以及如何配置 Hosting Provider。

通过 SSH 协议下载项目,首先需要在本机生成公钥

先查看系统用户目录下是否有 .ssh 文件夹,如果有的话,那说明你之前已经生成过公钥,则可以跳过生成公钥。运行下面的命令生成一个密钥:

ssh-keygen -t rsa -C "your_email"

运行后会提示输入密钥存储地址以及两次密码,这里我们都直接用 Enter 键跳过即可。接着运行下面的命令查看生成的公钥:

cat ~/.ssh/id_rsa.pub

如果你的 GitLab 不是用默认的 22 端口,那么你还需要在 .ssh 目录下建立一个 config 文件,并写入如下内容:

Host gitlab.xxxx.com
HostName gitlab.xxxx.com
Port 16333
PubkeyAuthentication yes
IdentityFile ~/.ssh/id_rsa

其中 Host 和 HostName 就是你所连接的 GitLab 地址。

生成公钥后,我们就需要登录 GitLab 站点,往我们的账号中添加秘钥了。点击 Settings -> SSH Keys 菜单,把刚刚的公钥添加进去。

之后选择任何一个项目,复制其ssh的项目地址,第一次时会提示是否接受服务器的密钥,选择是就可以了。正常情况下,都可以顺利下载。

配置了 SSH Key 之后,我们下载项目的时候就可以直接下载项目,不需要输入帐号和密码。但我们寻找项目的时候还需要登录 GitLab 去找项目的ssh地址,这个步骤显得有点繁琐。

其实我们通过 SmartGit 的 Hosting Provider 功能就可以直接查看所有项目,需要下载某个项目直接点击就可以下载了。

提示:SmartGit 是一款 Git 版本管理可视化工具,可以点击这里[下载](Download Git Client SmartGit)。

配置 Hosting Provider 功能,点击 Repository 菜单的 clone 选项,在窗口选择Add Providing Hosts。

在弹出的窗口填入相关信息,点击添加即可。

其实 Access Token 信息可以在 GitLab 的 Account 菜单中获取到。

配置完成后,下次 clone 项目的时候就可以看到对应的 Providing Hosts 选项。

选择对应的 Providing Hosts 选项,就可以看到所有的项目列表啦。

文章首发于【博客园-陈树义】,点击跳转到原文[《高效开发技巧:SSH秘钥快速下载Git项目》(http://www.cnblogs.com/chanshuyi/p/quick_download_git_project.html)。

高效开发技巧:为什么你下载Git项目这么慢?的更多相关文章

  1. 使用Eclipse上传/下载Git项目

    使用Eclipse上传/下载Git项目 前提: Eclipse已安装EGit插件 已拥有GitLab / GitHub / 其它Git托管服务账号 SSH方式 配置 配置Git信息 配置用户信息 Ec ...

  2. 使用SSH快速下载Git项目

    文章首发于[博客园-陈树义],点击跳转到原文使用SSH快速下载Git项目. Git下载项目的几种方式 Git是常用的代码版本技术,而GitLab则是开源的Git版本管理软件,GitLab是最受欢迎的版 ...

  3. 多人开发的git项目如何保持提交日志为一条直线?

    多人开发的git项目如何保持提交日志为一条直线? 一.Git的项目的git常用操作 a)Git clone 项目地址 从远程仓库克隆项目到本地 b)Git pull 从当前分支拉取更新代码 c)Git ...

  4. AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记)

    AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记) 前言 在"AngularJS项目开发技巧之图片预加载" ...

  5. AngularJS进阶(三十)AngularJS项目开发技巧之图片预加载

    AngularJS项目开发技巧之图片预加载 绪 项目(移动端采用Ionic 框架)开发完毕,测试阶段发现移动APP首页的广告图片(图片由服务器端返回相应url地址)很难加载,主要原因还是网速.如下图左 ...

  6. Git项目协同开发学习笔记2:项目库开发协作相关命令

    之前介绍了如何用git构建项目库及其后续操作的问题,但主要还是个人的操作问题,不太涉及到项目协作方面的问题,所以来说下这块.传送门在这里(后面的可以不用看了). 1.同步 首先就式同步问题:在项目协作 ...

  7. 微信小程序入门与实战 常用组件API开发技巧项目实战*全

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

  8. 【开发工具】-- IDEA集成Git在实际项目中的运用

    1.企业实际项目中Git的使用 在实际的企业项目开发中,我们一般Java的项目在公司都有自己的局域网代码仓库,仓库上存放着很多的项目.以我工作过的公司如华为的项目,一般是存放在企业内部的CodeHub ...

  9. git下载自己项目到本地

    git下载自己项目到本地 假如外出工作,需要在另一台电脑上面pull自己的某个git远程项目到本地 $ git init $ git pull https://github.com/TTyb/54qj ...

随机推荐

  1. MacBook 经常使用快捷键

    Mac OS X系统图形表示方法 ⇧ = shift ⌃ = control ⌥ = option / alt  Home=fn + ◄  End=fn + ►  Page Up=fn + ▲ Pag ...

  2. webpack+babel+transform-runtime, IE下提示Promise未定义?

    知识要求 babel的基础知识(推荐阮一峰的babel入门教程) 充分理解babel-plugin-transform-runtime与babel-runtime的作用(推荐github项目首页) w ...

  3. 在PowerShell脚本中集成Microsoft Graph

    作者:陈希章 发表于2017年4月23日 我旗帜鲜明地表态,我很喜欢PowerShell,相比较于此前的Cmd Shell,它有一些重大的创新,例如基于.NET的类型系统,以及管道.模块的概念等等.那 ...

  4. Tkinter界面编程(一)----函数分析

    Tkinter模块是python比较常用的GUI界面设计模块,首先对相关的函数进行分析. 一 .创建根窗口相关的函数说明 import tkinter as tk top = tk.Tk() # 创建 ...

  5. Solr4.10与tomcat整合并安装中文分词器

    1.solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索引. ...

  6. redis远程连接问题(安全模式问题)

    我在windows上远程连接linux上的redis(我虚拟机上的)遇到了问题,我是在windows上php代码中的调用redis接口来远程连接的,代码中ping()的时候报错. 服务器端我确定了ip ...

  7. DDOS学习笔记(《破坏之王-DDOS攻击与防范深度剖析》)

           最近花了点时间把<破坏之王-DDOS攻击与防范深度剖析>看了一遍,坦白来说,这本书比较浅显,可以说是入门书,当然对于我这种对DDOS一知半解的人来说,也是一本不错的书,起码我 ...

  8. iOS 写给iOS开发者的React Native学习路线(转)

    我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...

  9. SLAM入门之视觉里程计(2):两视图对极约束 基础矩阵

    在上篇相机模型中介绍了图像的成像过程,场景中的三维点通过"小孔"映射到二维的图像平面,可以使用下面公式描述: \[ x = MX \]其中,\(c\)是图像中的像点,\(M\)是一 ...

  10. [UWP]了解IValueConverter

    1. 前言 IValueConverter是用于数据绑定的强大的武器,它用于Value在Binding Source和Binding Target之间的转换.本文将介绍IValueConverter的 ...