一篇文宽涌,學(xué)會(huì)GitLab搭建和配置使用Eclipse的Git插件
操作系統(tǒng):CentOS6.7
GotLab版本:10.3.2-CE
(所有服務(wù)器上的配置均在root權(quán)限下操作)
一、基礎(chǔ)環(huán)境搭建
1.安裝軟件依賴
yum install -y curl policycoreutils-python openssh-server cronie
2.配置主機(jī)名
cat << EOF > /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=gitlab.example.com
EOF
3.添加防火墻規(guī)則放行ssh和http服務(wù)用到的端口
lokkit -s http -s ssh
二、安裝郵件服務(wù)器Postfix(可選)
yum install postfix
service postfix start
chkconfig postfix on
注:安裝過(guò)程中在配置界面選擇Internet Site鹰晨,使用服務(wù)器的域名來(lái)配置mail name
如不想啟用項(xiàng)目管理的郵件功能,可以跳過(guò)此步鸡典。
三芳悲、安裝GitLab
1.離線安裝GitLab
安裝GitLab有很多辦法,有直接安裝的馏臭,有通過(guò)添加源在線安裝的野蝇,有Docker、有VM鏡像括儒。绕沈。。
- 如果是為了研究學(xué)習(xí)帮寻,Docker和VM鏡像是最好的選擇
- 如果是生產(chǎn)環(huán)境部署乍狐,建議使用安裝包部署在物理服務(wù)器上
本文以生產(chǎn)環(huán)境部署為背景,部署在物理服務(wù)器上固逗。這里不建議使用官方Installation頁(yè)面Recommended的安裝方式浅蚪,因?yàn)楣俜侥_本里提供的源對(duì)國(guó)內(nèi)來(lái)說(shuō)速度很不友好,安裝過(guò)程很痛苦烫罩,這里采用離線安裝的方式惜傲。
首先在鏡像站下載GitLab的安裝包:
-
gitlab-ce-10.3.2-ce.0.el6.x86_64.rpm
版本號(hào)因選擇而異
清華鏡像站(推薦):
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/
官方鏡像站:
https://packages.gitlab.com/gitlab/gitlab-ce
假設(shè)服務(wù)器的主機(jī)名/域名是gitlab.example.com,安裝命令為:
EXTERNAL_URL="http://gitlab.example.com" rpm -i gitlab-ce-10.3.2-ce.0.el6.x86_64.rpm
正確安裝后應(yīng)有下列輸出:
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.啟動(dòng)GitLab
正常情況下啟動(dòng)GitLab的命令為:
gitlab-ctl start
但因?yàn)槭前惭b后第一次啟動(dòng)贝攒,配置文件需要初始化盗誊,第一次啟動(dòng)要執(zhí)行:
gitlab-ctl reconfigure
稍候片刻就執(zhí)行完成了。
此時(shí)可以通過(guò)
netstat -lntp
查看進(jìn)程占用端口情況隘弊,如果是按照上面的步驟全新安裝哈踱,輸出應(yīng)類似如下:
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.訪問(wèn)GitLab的WEB界面
如果服務(wù)器配置了域名,擇可以直接訪問(wèn)域名长捧;
如果服務(wù)器是在局域網(wǎng)內(nèi)搭建嚣鄙,在客戶端的主機(jī)上要配置服務(wù)器到主機(jī)名的映射:
服務(wù)器ip 服務(wù)器主機(jī)名
windows 10:
a.右鍵單擊左下角窗口按鈕,彈出菜單中選擇“命令提示符(管理員)”
b.在命令行提示符鍵入:notepad drivers\etc\hosts
c.在打開(kāi)的hosts文件中添加一行:(假設(shè)服務(wù)器的ip為192.168.10.168串结,主機(jī)名為 gitlab.example.com)
192.168.10.168 gitlab.example.com
保存并關(guān)閉
Most Linux OS:
執(zhí)行:
cat << EOF >> /etc/hosts
192.168.10.168 gitlab.example.com
EOF
打開(kāi)瀏覽器哑子,輸入域名/ip舅列,應(yīng)能看到如下界面:
首次安裝需要設(shè)置root密碼。
用戶名為root
密碼就是剛才設(shè)置的密碼卧蜓。
詳細(xì)的使用在下一章結(jié)合Eclipse講解帐要。
四、Eclipse配置使用Git
1.在GitLab上新建一個(gè)Project(項(xiàng)目)
這里可以看到有三個(gè)選項(xiàng)卡弥奸,分別是空項(xiàng)目榨惠、從模板新建和導(dǎo)入項(xiàng)目。
看圖含義很好理解盛霎,就不多贅述了赠橙。這里選擇空項(xiàng)目。
新建一個(gè)名為“GitTest”的項(xiàng)目愤炸,屬性設(shè)置為“Internal”防止未登錄用戶獲得項(xiàng)目的數(shù)據(jù)期揪。項(xiàng)目描述隨便寫(xiě)一些東西。然后點(diǎn)擊創(chuàng)建规个。
2.導(dǎo)入SSH Key
成功創(chuàng)建項(xiàng)目后凤薛,頁(yè)面頂部會(huì)提示要導(dǎo)入SSH Key,以使用SSH來(lái)push代碼诞仓。
(以u(píng)buntu Linux為例缤苫,windows環(huán)境請(qǐng)自行查閱資料)
打開(kāi)終端,輸入:
cat .ssh/id_rsa.pub
會(huì)得到類似下面這樣一串以ssh-rsa開(kāi)頭墅拭,以user@hostname結(jié)尾的Key:
如果執(zhí)行cat命令之后沒(méi)有輸出活玲,則需要生成ssh key:
ssh-keygen
一路回車(chē)使用默認(rèn)值即可,然后再執(zhí)行上面的命令得到生成的key谍婉。
點(diǎn)擊 “add an SSH key”
把剛才生成的key粘貼到文本框里翼虫,然后點(diǎn)擊 “Add key”
這樣就可以在自己的電腦上使用Git客戶端來(lái)管理GitLab上的項(xiàng)目了。
關(guān)于Git客戶端的操作屡萤,請(qǐng)參照其他資料,這里先不做講解掸宛。
3.在Eclipse中使用Git
a.向項(xiàng)目中添加一個(gè)README
我們先往項(xiàng)目里加點(diǎn)東西死陆,點(diǎn)擊頁(yè)首的 [Projects]->[Your Projects]->[Administrator GitTest] 回到創(chuàng)建的項(xiàng)目。新建一個(gè) README.md
GitLab的文檔建議使用Markdown語(yǔ)法唧瘾,想要熟練編寫(xiě)漂亮的文檔措译,還要掌握Markdown語(yǔ)法。
先隨便寫(xiě)了一點(diǎn)東西饰序,關(guān)于文檔的規(guī)范领虹,后續(xù)還要專門(mén)講,這里就不在意這些細(xì)節(jié)了求豫。
寫(xiě)完之后提交塌衰,看看效果:
這樣我們的項(xiàng)目下就有東西了诉稍。
b.配置Eclipse的Git插件
一般現(xiàn)在常用的版本都已經(jīng)預(yù)裝好了Git插件
我們首先給Eclipse添加用戶信息、SSH key
選擇 [Window]->[Preference] 打開(kāi)屬性對(duì)話框最疆,在filter里鍵入git:
在左側(cè)選擇Configuration杯巨,點(diǎn)擊右側(cè)的Add Entry,Key項(xiàng)添加uer.email努酸,Value添加郵箱地址服爷,這里隨便寫(xiě)了一個(gè):
點(diǎn)擊OK提交之后,再次點(diǎn)擊Add Entry获诈,添加:
c.配置Eclipse的SSH key
還是在preference對(duì)話框仍源,左側(cè)filter輸入ssh,選擇SSH2舔涎,右側(cè)的選項(xiàng)卡選擇 [Key Management](我的這個(gè)Eclipse主題有Bug笼踩,看不清選項(xiàng)卡的字):
然后點(diǎn)擊 [Generate RSA Key...] 生成一個(gè)key:
復(fù)制這個(gè)Key,點(diǎn)擊右下角的 [Apply and Close] 關(guān)閉對(duì)話框终抽。
在GitLab里點(diǎn)擊右上角的頭像戳表,選擇 [Settings] 進(jìn)入個(gè)人設(shè)置頁(yè),在頁(yè)面左側(cè)選擇SSH Keys:
把剛才復(fù)制的Key添加進(jìn)來(lái)昼伴。
點(diǎn)擊Add key提交匾旭。
d.使用Eclipse的Git插件clone GitLab上的項(xiàng)目
現(xiàn)在完成了基本的配置,回到Eclipse,點(diǎn)擊右上角的 [Open Perspective] :
在彈出的對(duì)話框選擇Git并Open(我的已經(jīng)選擇好了所以上圖能看見(jiàn)):
然后Eclipse就進(jìn)入到了Git視圖:
在左側(cè)項(xiàng)目窗口內(nèi)選擇第三個(gè)圖標(biāo)圃郊,“Clone a Git Repository and add the clone to this view”:
打開(kāi)GitLab的項(xiàng)目視圖价涝,把剛才建立的項(xiàng)目ssh鏈接復(fù)制出來(lái):
粘貼到Eclipse里:
點(diǎn)擊下一步,就可以得到GitTest的分支信息:
再點(diǎn)擊下一步持舆,我們可以在①處指定本地repo存放的目錄色瘩,在②處可以新建或者選擇工作集:
點(diǎn)擊完成,導(dǎo)入項(xiàng)目逸寓。
在左面的repo視圖中可以看到README.md文件了居兆。雙擊打開(kāi),可以看到文件內(nèi)容竹伸。
e.使用Eclipse的Git插件的commit泥栖、push和fetch
在Eclipse中修改項(xiàng)目文件的內(nèi)容之后,需要先commit到本地repo勋篓,右鍵GitTest項(xiàng)目名稱:
選擇 [Commit...] 填寫(xiě)好相關(guān)的說(shuō)明吧享。
雙擊修改的文件可以查看修改的內(nèi)容:
點(diǎn)擊Commit提交修改。這時(shí)我們打開(kāi)GitLab可以看到修改的內(nèi)容并沒(méi)有同步上來(lái)譬嚣,這是因?yàn)閯偛與ommit的修改是提交到了本地的repo钢颂,如果要提交到GitLab,還需要push一下拜银。
右鍵Local目錄下的master分支殊鞭,選擇Push Branch...
前面clone的時(shí)候已經(jīng)配置好了項(xiàng)目的信息遭垛,這里就使用默認(rèn)配置就可以了,點(diǎn)擊Next钱豁。
點(diǎn)擊Finish確認(rèn)Push動(dòng)作耻卡。
Push完成:
打開(kāi)GitLab的項(xiàng)目頁(yè),此時(shí)可以看到README.md的內(nèi)容已經(jīng)更新了牲尺。
下面在GitLab上修改一下README:
切換到Eclipse卵酪,在左側(cè)項(xiàng)目窗口右鍵GitTest項(xiàng)目,點(diǎn)擊Pull
這樣就把最新的內(nèi)容從GitLab上同步下來(lái)了,打開(kāi)WorkingTree下的README看看:
已經(jīng)變成GitLab上最新的內(nèi)容了谤碳。