1. 背景
大家知道 GitHub 是现在非常流行的代码托管工具,但是如果有些项目不想开源的话,则需要付费,因此萌生了自己搭建一个 Git 的版本控制工具,供内网使用。GitLab 则是个好的选择,但是 GitLab 只支持 Linux 版本,因此则需在 Windows 服务器上搭建个 Linux 的虚拟机,我选择了 Ubuntu。此时服务器端选型成功,客户端需要安装什么呢,我选择了 Git Extensions,用它是因为他直接集成了 Git 以及 KDiff3 工具,更方便的是这个工具自带 Putty,可以很方便地生成 SSH 公钥和私钥。
2. 环境
服务器端:Ubuntu (搭建在 Win10 上的虚拟机)、GitLab
客户端:Win10 Git Extensions (包括 Git、KDiff3)
3. 实现思路
安装 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)
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 如下图所示。
安装 GitLab,安装过程还算顺利,建议安装 Gitlab 安装包,我安装的是 gitlab-ce_9.1.1-ce.0_amd64,具体步骤不再赘述,详细可参考 http://blog.csdn.net/u011241606/article/details/51471367。建议把 external_url 设成当前 IP 地址。
客户端访问 GitLab URL 地址,如下图所示。默认账号是 root
- 客户端安装 Git Extensions,安装的过程会提醒你安装 Git 以及 KDiff3,安装过程中基本不需求设置什么,记得选 SSH 客户端 Putty,详细参考 http://blog.csdn.net/mysouling/article/details/51304173。Git Extension 可以生成公钥、私钥,公钥是要放到 GitHub、GitLab 里面的,私钥是存在本地,每次拉取代码或者克隆代码通过 Pageant 需要加载的。每个用户都对应一个公钥、一个私钥。GitLab 在 Setting 的 SSH keys 里面设置,如下图所示。
Git Extensions 安装完,在 Git Extensions 里新建 Group、项目、用户等,具体操作不再赘述,GitLab 已经部署好,这样就可以上传代码到 GitLab 里,然后通过 Git Extensions 通过 SSH Git 地址拉取代码,提交到本地仓库,提交到远程 Git 仓库(GitLab 里)。如下图所示。
在使用过程中,发现当 GitLab 修改了 IP 地址,但是 SSH 地址(如 git@192.168.0.103:zhangviv/develop.git)还是原来的地址,则需要进行修改,具体用法参考 http://blog.csdn.net/lcalqf/article/details/54862046。
v1.5.2