一篇文,学会GitLab搭建和配置使用Eclipse的Git插件
操作系统:CentOS6.7
GotLab版本:10.3.2-CE
(所有服务器上的配置均在root权限下操作)
一、基础环境搭建
1.安装软件依赖
yum install -y curl policycoreutils-python openssh-server cronie
2.配置主机名
cat << EOF > /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=gitlab.example.com
EOF
3.添加防火墙规则放行ssh和http服务用到的端口
lokkit -s http -s ssh
二、安装邮件服务器Postfix(可选)
yum install postfix
service postfix start
chkconfig postfix on
注:安装过程中在配置界面选择Internet Site,使用服务器的域名来配置mail name
如不想启用项目管理的邮件功能,可以跳过此步。
三、安装GitLab
1.离线安装GitLab
安装GitLab有很多办法,有直接安装的,有通过添加源在线安装的,有Docker、有VM镜像。。。
- 如果是为了研究学习,Docker和VM镜像是最好的选择
- 如果是生产环境部署,建议使用安装包部署在物理服务器上
本文以生产环境部署为背景,部署在物理服务器上。这里不建议使用官方Installation页面Recommended的安装方式,因为官方脚本里提供的源对国内来说速度很不友好,安装过程很痛苦,这里采用离线安装的方式。
首先在镜像站下载GitLab的安装包:
- gitlab-ce-10.3.2-ce.0.el6.x86_64.rpm
版本号因选择而异
清华镜像站(推荐):
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/
官方镜像站:
https://packages.gitlab.com/gitlab/gitlab-ce
假设服务器的主机名/域名是gitlab.example.com,安装命令为:
EXTERNAL_URL="http://gitlab.example.com" rpm -i gitlab-ce-10.3.2-ce.0.el6.x86_64.rpm
正确安装后应有下列输出:
It looks like GitLab has not been configured yet; skipping the upgrade script.
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
2.启动GitLab
正常情况下启动GitLab的命令为:
gitlab-ctl start
但因为是安装后第一次启动,配置文件需要初始化,第一次启动要执行:
gitlab-ctl reconfigure
稍候片刻就执行完成了。
此时可以通过
netstat -lntp
查看进程占用端口情况,如果是按照上面的步骤全新安装,输出应类似如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 46072/redis_exporte
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 46354/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 46388/postgres_expo
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 45935/node_exporter
tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 46310/gitlab-workho
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 46342/ruby
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 45473/unicorn maste
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 45632/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 43821/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2064/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 8741/master
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 45632/nginx
tcp 0 0 ::1:9168 :::* LISTEN 46342/ruby
tcp 0 0 :::22 :::* LISTEN 43821/sshd
tcp 0 0 ::1:631 :::* LISTEN 2064/cupsd
tcp 0 0 ::1:25 :::* LISTEN 8741/master
3.访问GitLab的WEB界面
如果服务器配置了域名,择可以直接访问域名;
如果服务器是在局域网内搭建,在客户端的主机上要配置服务器到主机名的映射:
服务器ip 服务器主机名
windows 10:
a.右键单击左下角窗口按钮,弹出菜单中选择“命令提示符(管理员)”
b.在命令行提示符键入:notepad drivers\etc\hosts
c.在打开的hosts文件中添加一行:(假设服务器的ip为192.168.10.168,主机名为 gitlab.example.com)
192.168.10.168 gitlab.example.com
保存并关闭
Most Linux OS:
执行:
cat << EOF >> /etc/hosts
192.168.10.168 gitlab.example.com
EOF
打开浏览器,输入域名/ip,应能看到如下界面:
首次安装需要设置root密码。
用户名为root
密码就是刚才设置的密码。
详细的使用在下一章结合Eclipse讲解。
四、Eclipse配置使用Git
1.在GitLab上新建一个Project(项目)
这里可以看到有三个选项卡,分别是空项目、从模板新建和导入项目。
看图含义很好理解,就不多赘述了。这里选择空项目。
新建一个名为“GitTest”的项目,属性设置为“Internal”防止未登录用户获得项目的数据。项目描述随便写一些东西。然后点击创建。
2.导入SSH Key
成功创建项目后,页面顶部会提示要导入SSH Key,以使用SSH来push代码。
(以ubuntu Linux为例,windows环境请自行查阅资料)
打开终端,输入:
cat .ssh/id_rsa.pub
会得到类似下面这样一串以ssh-rsa开头,以user@hostname结尾的Key:
如果执行cat命令之后没有输出,则需要生成ssh key:
ssh-keygen
一路回车使用默认值即可,然后再执行上面的命令得到生成的key。
点击 “add an SSH key”
把刚才生成的key粘贴到文本框里,然后点击 “Add key”
这样就可以在自己的电脑上使用Git客户端来管理GitLab上的项目了。
关于Git客户端的操作,请参照其他资料,这里先不做讲解。
3.在Eclipse中使用Git
a.向项目中添加一个README
我们先往项目里加点东西,点击页首的 [Projects]->[Your Projects]->[Administrator GitTest] 回到创建的项目。新建一个 README.md
GitLab的文档建议使用Markdown语法,想要熟练编写漂亮的文档,还要掌握Markdown语法。
先随便写了一点东西,关于文档的规范,后续还要专门讲,这里就不在意这些细节了。
写完之后提交,看看效果:
这样我们的项目下就有东西了。
b.配置Eclipse的Git插件
一般现在常用的版本都已经预装好了Git插件
我们首先给Eclipse添加用户信息、SSH key
选择 [Window]->[Preference] 打开属性对话框,在filter里键入git:
在左侧选择Configuration,点击右侧的Add Entry,Key项添加uer.email,Value添加邮箱地址,这里随便写了一个:
点击OK提交之后,再次点击Add Entry,添加:
c.配置Eclipse的SSH key
还是在preference对话框,左侧filter输入ssh,选择SSH2,右侧的选项卡选择 [Key Management](我的这个Eclipse主题有Bug,看不清选项卡的字):
然后点击 [Generate RSA Key...] 生成一个key:
复制这个Key,点击右下角的 [Apply and Close] 关闭对话框。
在GitLab里点击右上角的头像,选择 [Settings] 进入个人设置页,在页面左侧选择SSH Keys:
把刚才复制的Key添加进来。
点击Add key提交。
d.使用Eclipse的Git插件clone GitLab上的项目
现在完成了基本的配置,回到Eclipse,点击右上角的 [Open Perspective] :
在弹出的对话框选择Git并Open(我的已经选择好了所以上图能看见):
然后Eclipse就进入到了Git视图:
在左侧项目窗口内选择第三个图标,“Clone a Git Repository and add the clone to this view”:
打开GitLab的项目视图,把刚才建立的项目ssh链接复制出来:
粘贴到Eclipse里:
点击下一步,就可以得到GitTest的分支信息:
再点击下一步,我们可以在①处指定本地repo存放的目录,在②处可以新建或者选择工作集:
点击完成,导入项目。
在左面的repo视图中可以看到README.md文件了。双击打开,可以看到文件内容。
e.使用Eclipse的Git插件的commit、push和fetch
在Eclipse中修改项目文件的内容之后,需要先commit到本地repo,右键GitTest项目名称:
选择 [Commit...] 填写好相关的说明。
双击修改的文件可以查看修改的内容:
点击Commit提交修改。这时我们打开GitLab可以看到修改的内容并没有同步上来,这是因为刚才commit的修改是提交到了本地的repo,如果要提交到GitLab,还需要push一下。
右键Local目录下的master分支,选择Push Branch...
前面clone的时候已经配置好了项目的信息,这里就使用默认配置就可以了,点击Next。
点击Finish确认Push动作。
Push完成:
打开GitLab的项目页,此时可以看到README.md的内容已经更新了。
下面在GitLab上修改一下README:
切换到Eclipse,在左侧项目窗口右键GitTest项目,点击 Pull
这样就把最新的内容从GitLab上同步下来了,打开WorkingTree下的README看看:
已经变成GitLab上最新的内容了。