基于GitLab与Git Extensions搭建版本控制工具
1.背景
大家知道GitHub是现在非常流行的代码托管工具,但是如果有些项目不想开源的话,则需要付费,因此萌生了自己搭建一个Git的版本控制工具,供内网使用。GitLab则是个好的选择,但是GitLab只支持Linux版本,因此则需在Windows服务器上搭建个Linux的虚拟机,我选择了Ubuntu。此时服务器端选型成功,客户端需要安装什么呢,我选择了Git Extensions,用它是因为他直接集成了Git以及KDiff3工具,更方便的是这个工具自带Putty,可以很方便地生成SSH公钥和私钥。
2.环境
(1)服务器端:Ubuntu(搭建在Win10上的虚拟机)、GitLab
(2)客户端:Win10 Git Extensions(包括Git、KDiff3)
3.实现思路
(1)安装Ubuntu,版本号:Ubuntu 16.04,具体安装步骤就不赘述,可以参考http://blog.csdn.net/u013142781/article/details/50529030,Ubuntu安装完发现了一个问题,屏幕太小,而且无法放大,可以通过安装Vmware Tool解决,具体可以参考http://jingyan.baidu.com/article/fc07f98977b60f12ffe5199b.html,这里需要用到Ubuntu的终端工具(类似Windows的cmd),需要采用命令行的方式去执行,刚开始有些不太习惯。(注:打开终端的快捷键:ctrl+alt+T,切换管理员的命令:sudo su)
(2) Ubuntu虚拟机与Win10宿主机的网络连接方式,有两种方式,一个是桥接模式,另一个是NAT模式。桥接模式是直接连接物理网络的,也就是桥接模式下Ubuntu虚拟机跟Win10是在同一个网段的局域网里的。好比我的Win10 IP:192.168.0.104,桥接模式下的Ubuntu的Ip是192.168.0.103;而NAT模式则是共享主机的Ip,自动生成一个IP地址,此地址跟宿主机不在一个网段里,比如我这边IP地址是:192.168.182.129。当前的业务需求是在局域网里能访问,选择了桥接模式。Ubuntu如下图所示。
(3)安装GitLab,安装过程还算顺利,建议安装Gitlab安装包,我安装的是gitlab-ce_9.1.1-ce.0_amd64,具体步骤不再赘述,详细可参考http://blog.csdn.net/u011241606/article/details/51471367。建议把external_url 设成当前IP地址。
(4)客户端访问GitLab URL地址,如下图所示。默认账号是root
(5)客户端安装Git Extensions,安装的过程会提醒你安装Git以及KDiff3,安装过程中基本不需求设置什么,记得选SSH客户端Putty,详细参考http://blog.csdn.net/mysouling/article/details/51304173。Git Extension可以生成公钥、私钥,公钥是要放到GitHub、GitLab里面的,私钥是存在本地,每次拉取代码或者克隆代码通过Pageant需要加载的。每个用户都对应一个公钥、一个私钥。GitLab在Setting的SSH keys里面设置,如下图所示。

(6)Git Extensions安装完,在Git Extensions里新建Group、项目、用户等,具体操作不再赘述,GitLab已经部署好,这样就可以上传代码到GitLab里,然后通过Git Extensions通过SSH Git地址拉取代码,提交到本地仓库,提交到远程Git仓库(GitLab里)。如下图所示。

(7)在使用过程中,发现当GitLab修改了IP地址,但是SSH地址(如git@192.168.0.103:zhangviv/develop.git)还是原来的地址,则需要进行修改,具体用法参考http://blog.csdn.net/lcalqf/article/details/54862046。
基于GitLab与Git Extensions搭建版本控制工具的更多相关文章
- Windows下基于http的git服务器搭建-gitstack
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack 本文地址:http: ...
- 基于gitlab 15.1 pages 搭建内部博客一定行版本
背景 基于 gitlab 15.1版 pages 搭建内部博客,参考官方文档,遇到一个又一个坑.之前看到别人吐槽说 gitlab 官方文档很差,我算是理解了.下面一个个说. 开始 按照官方文档的说法, ...
- [git更新中]版本控制工具git初步使用
逐渐开始写规模稍大的程序, 如果在像以前一样每写完一次保存一个版本, 修改起来太蛋疼了, 而且还会忘记都有修改过哪里, 最终如果写完的话, 各种不方便, 于是便开始接触版本控制工具. 因为是在Linu ...
- (一)Git时间--初识版本控制工具
//配置一下你的身份 git config --global use.name "Douzi" git config --global use.email "jdouzi ...
- Git时间 —— 初始版本控制工具
<第一行代码>读书手札 可能你早就听闻git,奈何看不懂命令吓退了. 今天逆流而上. (1.)安装Git 登录官网,下载最新版,一路下一步.就完成安装了. (2.)创建本地代码仓库 首先配 ...
- 再次学习Git版本控制工具
Git 究竟是怎样的一个系统呢?为什么在SVN作为版本控制工具已经非常流行的时候,还有Git这样一个版本控制工具呢?Git和SVN的区别在哪儿呢?Git优势又在哪呢?下面PHP程序员雷雪松带你一起详细 ...
- Git Extensions 和 Tortoisegit 到底是什么?Git For VS(Git For Visual Studio)(Visual Studio 中使用 Git)
前言: 我们使用 Git 作为版本控制的朋友们,一定都熟悉 Git Extensions 和 Tortoisegit 两款工具,但是对于初学者,可能就不那么了解了. 当然如果有幸,你接触过 SVN , ...
- Git在下搭建下环境的工具
(本文稿来自:http://www.open-open.com/news/view/55387) Git是一个快速,可扩展的,分布式的版本控制系统.Git服务器起初是专为Linux开发,后来移植至Wi ...
- 版本控制工具 - Git
版本控制工具 - Git 安装完成后,打开Git Bash,这是一个命令行工具,用于操作仓库和仓库的文件.你可以通过命令将已经存在的项目变成仓库,也可以重新创建一个新项目再通过命令将其变成仓库,还可以 ...
随机推荐
- SQL某时间段记录查询
--查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info wh ...
- discuz回贴通知插件实现-显示用户状态设置
一.完善用户是否开启回贴通知 回贴通知插件建立模块时,指定了核心文件post_set.inc.php 1.创立好数据库 建立独立数据表(不建议直接修改原有的discuz数据库,防止discuz升级 ...
- PM2使用及介绍
pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的.它非常适合IaaS结构,但不要把它用于 ...
- ==和equals方法:
Java程序中判断两个变量是否相等有两种方式: 一.利用 == 运算符: 1.1.如果两个变量是基本类型变量,且都是数值型(不一定要求数值类型完全相同),则只要两个变量的值相同,就返回true 1.2 ...
- TYVJ 1940 创世纪
Description: 上帝手中有着 N 种被称作“世界元素”的东西,现在他要把它们中的一部分投放到一个新的空间中去以建造世界.每 种世界元素都可以限制另外一种世界元素,所以说上帝希望所有被投放的世 ...
- java读取配置文件的方法
1. Preferences类 这个主要是设置个人喜好.它的数据一般存在系统目录或是用户目录.还可以操作注册表. 2. Properties类 保存键值对.可以指定路径. 3. commons con ...
- 【JS】点击页面判断是否安装app并打开,否则跳转下载的方法
应用场景 App产品在运营推广上有一个需求,就是要求可以让用户在访问我们的推广网页时,就可以判断出这个用户手机上是否安装了我们的App,如果安装了则可以直接在网页上打开,否则就引导用户前往下载.从而形 ...
- 微分方程数值解Euler法
微分方程:dy/dt=1+y; 解是y=2exp(x)-1; clc clear figure() dx=0.1; x=:dx:; y=zeros(size(x)); x()=; y()=; :len ...
- Linux各个版本资源下载
Linux系统各发行版镜像下载(持续更新) == Linux系统各发行版镜像下载(2014年10月更新),如果直接下载不了,请使用迅雷下载.并且注意,我的下载地址,在 迅雷 里才起作用. Linux ...
- webuploader 文件上传总结
$(function() { /** * 初始化Web Uploader */ var uploader = WebUploader.create({ swf : '../mobile/Uploade ...