高效开发技巧:为什么你下载Git项目这么慢?
文章首发于【博客园-陈树义】,点击跳转到原文《高效开发技巧:为什么你下载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项目这么慢?的更多相关文章
- 使用Eclipse上传/下载Git项目
使用Eclipse上传/下载Git项目 前提: Eclipse已安装EGit插件 已拥有GitLab / GitHub / 其它Git托管服务账号 SSH方式 配置 配置Git信息 配置用户信息 Ec ...
- 使用SSH快速下载Git项目
文章首发于[博客园-陈树义],点击跳转到原文使用SSH快速下载Git项目. Git下载项目的几种方式 Git是常用的代码版本技术,而GitLab则是开源的Git版本管理软件,GitLab是最受欢迎的版 ...
- 多人开发的git项目如何保持提交日志为一条直线?
多人开发的git项目如何保持提交日志为一条直线? 一.Git的项目的git常用操作 a)Git clone 项目地址 从远程仓库克隆项目到本地 b)Git pull 从当前分支拉取更新代码 c)Git ...
- AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记)
AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记) 前言 在"AngularJS项目开发技巧之图片预加载" ...
- AngularJS进阶(三十)AngularJS项目开发技巧之图片预加载
AngularJS项目开发技巧之图片预加载 绪 项目(移动端采用Ionic 框架)开发完毕,测试阶段发现移动APP首页的广告图片(图片由服务器端返回相应url地址)很难加载,主要原因还是网速.如下图左 ...
- Git项目协同开发学习笔记2:项目库开发协作相关命令
之前介绍了如何用git构建项目库及其后续操作的问题,但主要还是个人的操作问题,不太涉及到项目协作方面的问题,所以来说下这块.传送门在这里(后面的可以不用看了). 1.同步 首先就式同步问题:在项目协作 ...
- 微信小程序入门与实战 常用组件API开发技巧项目实战*全
第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...
- 【开发工具】-- IDEA集成Git在实际项目中的运用
1.企业实际项目中Git的使用 在实际的企业项目开发中,我们一般Java的项目在公司都有自己的局域网代码仓库,仓库上存放着很多的项目.以我工作过的公司如华为的项目,一般是存放在企业内部的CodeHub ...
- git下载自己项目到本地
git下载自己项目到本地 假如外出工作,需要在另一台电脑上面pull自己的某个git远程项目到本地 $ git init $ git pull https://github.com/TTyb/54qj ...
随机推荐
- 盘点selenium phantomJS使用的坑
参考:http://www.jianshu.com/p/9d408e21dc3a http://www.cnblogs.com/luxiaojun/p/6144748.html 豆瓣应该是ip被封 ...
- Material使用08 MdDialogModule、MdAutocompleteModule
1 MatDialog 1.1 简要描述 MdDialog是一个服务,可以利用它来打开一个具有material风格和动画效果的对话框 技巧01:虽然已经在模块级别导入了MdDialogModule但是 ...
- myeclipse 2014 customize_Perspective 失效解决方法-有效
1.将9个jar复制到myeclipse安装目录\plugins中 2.删除和这9个jar同包名但是版本号较低的9个文件 3.重启myeclipse 2014 三步走: 到这个地址下载 http:// ...
- .net WCF简单实例
最近看到网上招聘有许多都需要WCF技术的人员,我之前一直没接触过这个东西,以后工作中难免会遇到,所谓笨鸟先飞,于是我就一探究竟,便有了这边文章.由于是初学WCF没有深入研究其原理,只是写了一个demo ...
- Java.util.Map排序输出
在java的众多Map实现中,Map基本上是不能保证顺序的(LinkedHashMap可以保证插入顺序或者访问顺序,TreeMap默认按照key升序但可以自定义Comparator),在开发过程中当数 ...
- [array] leetcode - 39. Combination Sum - Medium
leetcode - 39. Combination Sum - Medium descrition Given a set of candidate numbers (C) (without dup ...
- 使用SplitContainer来实现隐藏窗口的部分内容(转)
有两种方法: (1) Splitter:比较老的方法 (2) SplitContainer:比较新的方法 最终界面如下: 方法一:使用Splitter实现 (1) 在窗口中添加一个Panel控件,即P ...
- Spring+MVC+Mybatis整合
本文是对慕课网上"搞定SSM开发"路径的系列课程的总结,详细的项目文档和课程总结放在github上了.点击查看 什么是秒杀业务 网站售卖某产品时,规定在某个日期开始售卖限量的产品, ...
- Intellij IDEA 像eclipse那样给maven添加依赖
打开pom.xml,在它里面使用快捷键:ALT+Insert ---->点击dependency 再输入想要添加的依赖关键字,比如:输个spring 出现下图: 根据需求选择版本,完成以后 ...
- iptables 命令详解
转载:http://blog.chinaunix.net/uid-26495963-id-3279216.html 一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件 ...