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. 解读超轻量级DI容器-Guice与Spring框架的区别【转载】

    依赖注入,DI(Dependency Injection),它的作用自然不必多说,提及DI容器,例如spring,picoContainer,EJB容器等等,近日,google诞生了更轻巧的DI容器… ...

  2. swift - 网络请求数据处理 - 协议处理

    1. 在类的模型之中或类的结构体 里面 实现下面方法 /// 添加预约数据源模型 - rootModel class DataModelForAddNewBespeakModel: NSObject ...

  3. 【JDK1.8】JUC——ReentrantLock

    一.前言 在之前的几篇中,我们回顾了锁框架中比较重要的几个类,他们为实现同步提供了基础支持,从现在开始到后面,就开始利用之前的几个类来进行各种锁的具体实现.今天来一起看下ReentrantLock,首 ...

  4. linux新安装JDK不生效的问题

    新安装了jdk,但重新连接之后仍然显示老的jdk 1. which java 2. which javac 3. rm -rf /usr/bin/java 4. rm -rf /usr/bin/jav ...

  5. Jmeter运行过程中如何让Fiddler同时可以抓获到服务器的应答报文

    在默认情况下,Jmeter运行过程中,Fiddler是抓不到对应的应答报文的. 但是,在某些时候,我们希望分析Jmeter执行失败的原因,想了解Jmeter获取到的应答报文是否有问题,就需要同服务器返 ...

  6. oracle建存储过程

    进入plsql命令行 [10:42:10 liuyi@localhost]/home/liuyi>sqlplus demo/demo@180.200.3.129/meboss 连接串格式:用户名 ...

  7. 【JAVA】通过URLConnection/HttpURLConnection发送HTTP请求的方法(一)

    Java原生的API可用于发送HTTP请求 即java.net.URL.java.net.URLConnection,JDK自带的类: 1.通过统一资源定位器(java.net.URL)获取连接器(j ...

  8. 2018.10.16 spoj Can you answer these queries V(线段树)

    传送门 线段树经典题. 就是让你求左端点在[l1,r1][l1,r1][l1,r1]之间,右端点在[l2,r2][l2,r2][l2,r2]之间且满足l1≤l2,r1≤r2l1\le l2,r1 \l ...

  9. 2018.10.14 bzoj1915: 奶牛的跳格子游戏(单调队列优化dp)

    传送门 NOIP练习题. f[i]f[i]f[i]表示去的时候选了iii且回来的时候第一步走的是i−1i-1i−1的最优值. 显然f[i]=maxf[i]=maxf[i]=max{f[j]−sum[j ...

  10. linux将程序扔到后台并获取程序的进程号

    我们经常需要写一些执行时间较长的程序,但是如果在程序执行过程中超时了,有许多原因,可能是程序已经挂起了,这时就需要杀死这样的进程,则可以通过如下的命令执行: java -jar TestProcess ...