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搭建版本控制工具的更多相关文章

  1. Windows下基于http的git服务器搭建-gitstack

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack     本文地址:http: ...

  2. 基于gitlab 15.1 pages 搭建内部博客一定行版本

    背景 基于 gitlab 15.1版 pages 搭建内部博客,参考官方文档,遇到一个又一个坑.之前看到别人吐槽说 gitlab 官方文档很差,我算是理解了.下面一个个说. 开始 按照官方文档的说法, ...

  3. [git更新中]版本控制工具git初步使用

    逐渐开始写规模稍大的程序, 如果在像以前一样每写完一次保存一个版本, 修改起来太蛋疼了, 而且还会忘记都有修改过哪里, 最终如果写完的话, 各种不方便, 于是便开始接触版本控制工具. 因为是在Linu ...

  4. (一)Git时间--初识版本控制工具

    //配置一下你的身份 git config --global use.name "Douzi" git config --global use.email "jdouzi ...

  5. Git时间 —— 初始版本控制工具

    <第一行代码>读书手札 可能你早就听闻git,奈何看不懂命令吓退了. 今天逆流而上. (1.)安装Git 登录官网,下载最新版,一路下一步.就完成安装了. (2.)创建本地代码仓库 首先配 ...

  6. 再次学习Git版本控制工具

    Git 究竟是怎样的一个系统呢?为什么在SVN作为版本控制工具已经非常流行的时候,还有Git这样一个版本控制工具呢?Git和SVN的区别在哪儿呢?Git优势又在哪呢?下面PHP程序员雷雪松带你一起详细 ...

  7. Git Extensions 和 Tortoisegit 到底是什么?Git For VS(Git For Visual Studio)(Visual Studio 中使用 Git)

    前言: 我们使用 Git 作为版本控制的朋友们,一定都熟悉 Git Extensions 和 Tortoisegit 两款工具,但是对于初学者,可能就不那么了解了. 当然如果有幸,你接触过 SVN , ...

  8. Git在下搭建下环境的工具

    (本文稿来自:http://www.open-open.com/news/view/55387) Git是一个快速,可扩展的,分布式的版本控制系统.Git服务器起初是专为Linux开发,后来移植至Wi ...

  9. 版本控制工具 - Git

    版本控制工具 - Git 安装完成后,打开Git Bash,这是一个命令行工具,用于操作仓库和仓库的文件.你可以通过命令将已经存在的项目变成仓库,也可以重新创建一个新项目再通过命令将其变成仓库,还可以 ...

随机推荐

  1. PostgreSQL+pgpool-II复制方案

    目录 PostgreSQL+pgpool-II复制方案 1. Pgpool-II介绍 2. pgpool-II安装 2.1 安装pgpool-II yum源,并安装pgpool-II 2.2 添加Pg ...

  2. [python] can not find app ,module

    can not find module 1 startapp appname 而不是 startproject 2 不要自己创建项目根目录,要用mamage.py生成 can not find app ...

  3. 使用 Php Artisan Tinker 来调试你的 Laravel

    Posted on 2016年6月19日 by ichou 本文翻译自:Tinker with the Data in Your Laravel Apps with Php Artisan Tinke ...

  4. Mina 系列(二)之基础

    Mina 系列(二)之基础 Mina 使用起来多么简洁方便呀,就是不具备 Java NIO 的基础,只要了解 Mina 常用的 API,就可以灵活使用并完成应用开发. 1. Mina 概述 首先,看 ...

  5. cuda使用

    import torchx = torch.randn(2, 3)x = x.cuda() print (x)#最简单的cuda使用,但是感觉好慢啊

  6. 内网IP和公网IP的区别

        内网IP和公网IP的区别     什么是内网IP: 一些小型企业或者学校,通常都是申请一个固定的IP地址,然后通过IP共享(IP Sharing),使用整个公司或学校的机器都能够访问互联网.而 ...

  7. pthread_once 和 pthread_key

    http://blog.csdn.net/rickyguo/article/details/6259410 一次性初始化 有时候我们需要对一些posix变量只进行一次初始化,如线程键(我下面会讲到). ...

  8. HDU 1718 Rank (排序)

    题意:给你n个学号和成绩,并且给定一个学号,让找这个学号是多少名. 析:用个结构体,按成绩排序,然后找那个学号,这个题有一个小坑,那就是并列的情况, 可能并列多少名,这个要考虑一下,其他的easy! ...

  9. jdbcmysql

    做java开发难免会用到数据库,操作数据库也是java开发的核心技术.那我们现在就来谈谈javajdbc来操作mysql数据库吧 第一步:我们需要把mysql的驱动引进来这里引驱动就是把mysql-c ...

  10. MySQL Yum存储库 安装、升级、集群

    添加MySQL Yum存储库 首先,将MySQL Yum存储库添加到系统的存储库列表中.按着这些次序: 在http://dev.mysql.com/downloads/repo/yum/上转到MySQ ...