環(huán)球關(guān)注:在Linux下搭建Git服務(wù)器
時(shí)間:2023-06-25 10:19:40
| 眾所周知,版本系統(tǒng)在開發(fā)環(huán)境中是必不可少的,但是我們可以把代碼免費(fèi)的托管到GitHub上,如果我們不原意公開項(xiàng)目的源代碼,公司又不想付費(fèi)使用,那么我們可以自己搭建一臺(tái)Git服務(wù)器,可以用Gitosis來管理公鑰,還是比較方便的。 |
搭建環(huán)境:
服務(wù)器CentOS6.6 + git(version 1.8.3.1)
客戶端 Windows10 + git(version 2.11.1.windows.1)
(資料圖片)
Linux是服務(wù)器端系統(tǒng),Windows作為客戶端系統(tǒng),分別安裝Git
安裝服務(wù)端:
[root@linuxprobe ~]# yum install -y git[root@localhost ~]# git --version //安裝完后,查看 Git 版本git version 1.8.3.1
安裝客戶端:
下載Git for Windows,地址:https://git-for-windows.github.io/
安裝完之后,可以使用Git Bash作為命令行客戶端。
$ git --versiongit version 2.11.1.windows.1 //安裝完之后,查看Git版本
安裝Gitosis
[root@linuxprobe ~]# cd software/[root@linuxprobe software]# git clone https://github.com/res0nat0r/gitosis.git[root@linuxprobe software]# yum install python-setuptools -y[root@linuxprobe software]# cd gitosis[root@linuxprobe gitosis]# sudo python setup.py install
出現(xiàn)下面的信息表示安裝成功了
Using /usr/lib/python2.6/site-packages Finished processing dependencies for gitosis==0.22. 服務(wù)器端創(chuàng)建git用戶來管理Git服務(wù)
[root@linuxprobe ~]# id git //查看git用戶是否存在id: git: no such user[root@linuxprobe ~]# useradd git[root@linuxprobe ~]# echo "123" | passwd --stdin git[root@linuxprobe ~]# su - git //切換到git用戶下3. 配置公鑰
在Windows上配置管理者,git服務(wù)器需要一些管理者,通過上傳開發(fā)者機(jī)器的公鑰到服務(wù)器,添加成為git服務(wù)器的管理者,打開git命令行
$ ssh-keygen -t rsa //一直回車,不需要設(shè)置密碼~ scp ~/.ssh/id_rsa.pub git@192.168.34.184:~ //復(fù)制到git服務(wù)器上4. 配置gitosis
使用git用戶并初始化gitosis
[root@linuxprobe ~]# cd .ssh[root@linuxprobe ~]# gitosis-init < ./id_rsa.pubInitialized empty Git repository in /home/git/repositories/gitosis-admin.git/Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/[root@linuxprobe ~]# chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update //添加權(quán)限
在Windows上機(jī)器上clone gitosis-admin到管理者主機(jī)
$ git clone ssh://git@192.168.34.184:22/gitosis-admin.git$ cd gitosis-admin$ ls$ gitosis.confkeydir
gitosis.conf: git服務(wù)器配置文件
keydir: 存放客戶端公鑰
配置gitosis.conf文件
$ vim gitosis.conf[gitosis][group gitosis-admin] #組名稱members = yueyong@SHA2-001 #組成員writable = gitosis-admin #項(xiàng)目名稱[group test] //這里添加了"test"項(xiàng)目組,上傳到個(gè)git服務(wù)器members = yueyong@SHA2-001writable = test
在Windows管理者機(jī)器上創(chuàng)建本地test倉庫,并上傳到git服務(wù)端
$ git config --global user.name "Your Name" //第一次提交需要設(shè)置個(gè)人信息,設(shè)置用戶名和郵箱$ git config --global user.email "email@example.com"$ cd ~/repo $ mkdir test$ git init$ tocuh readme.txt
提交到遠(yuǎn)程服務(wù)器
$ git add .$ git commit -a -m "init test"$ git remote add repo git@192.168.186.129:test.git //repo 遠(yuǎn)程庫的名稱,可以換成任意名稱$ git push repo master //上傳本地所有分支代碼到遠(yuǎn)程對(duì)應(yīng)的分支上
服務(wù)端會(huì)自動(dòng)創(chuàng)建test倉庫
[git@repositories]# pwd/home/git/repositories[git@linuxprobe repositories]$ lsgitosis-admin.git test.git5.添加其他git用戶開發(fā)者
由于公司開發(fā)團(tuán)隊(duì)人數(shù)不斷增多,手動(dòng)添加開發(fā)者私鑰到/home/git/.ssh/authorized_keys比較麻煩,通過上面的Windows機(jī)器的管理者統(tǒng)一收集其他開發(fā)者的私鑰id_rsa.pub文件,然后傳到服務(wù)器上,配置好后,用戶即獲得項(xiàng)目權(quán)限,可以從遠(yuǎn)程倉庫拉取和推送項(xiàng)目,達(dá)到共同開發(fā)項(xiàng)目。
$ cd ~/gitosis-admin/keydir$ mv ~/id_rsa.pub zhangsan@SHA2-002.pub //修改公鑰為主機(jī)名.pub$ vim gitosis.conf [group test] writable = test members = yueyong@SHA2-001 zhangsan@SHA2-002 //添加成員
$ git add .$ git commit -m "add zhangsan@SHA2-002 pub and update gitosis.conf"$ git push repo master
推送完成后,新加進(jìn)來的開發(fā)者就可以進(jìn)行項(xiàng)目的開發(fā)了,后續(xù)增加人員可以這樣添加進(jìn)來,開發(fā)者直接把倉庫clone下來就可以了。
git clone git@192.168.34.184:/home/git/repositories/test.git報(bào)錯(cuò)問題:ERROR:gitosis serve main repository read access denied根據(jù)這個(gè)報(bào)錯(cuò),可以看出key是沒問題的,通過排查,發(fā)現(xiàn)不應(yīng)該把這個(gè)/home/git/repositories/test.git寫全,git clone git@192.168.34.184:test.git這樣就可以了。
本文原創(chuàng)地址:https://www.linuxprobe.com/linux-deploy-git.html作者:岳永,審核員:逄增寶
本文原創(chuàng)地址:https://www.linuxprobe.com/linux-deploy-git.html
相關(guān)稿件
環(huán)球關(guān)注:在Linux下搭建Git服務(wù)器
(聚焦中國高質(zhì)量發(fā)展)聚力品牌培育 千億莆田鞋產(chǎn)業(yè)再出發(fā)|當(dāng)前滾動(dòng)
天天最資訊丨端午返程高峰來了!全國公路網(wǎng)處于高位運(yùn)行態(tài)勢
端午假期民航鐵路出行均超2019年水平 拼假出行受歡迎-全球訊息
世界播報(bào):夏季氣溫高 去打卡景區(qū)這些注意事項(xiàng)要放心上
網(wǎng)游“過臉”當(dāng)生意,觸犯刑律擔(dān)責(zé)
青藏鐵路西格段復(fù)興號(hào)動(dòng)車組開始試運(yùn)行 每日看點(diǎn)
倡導(dǎo)“新食尚” 讓節(jié)約成為另一種“增產(chǎn)”|天天快訊
1.06億人次出游!端午節(jié)假期國內(nèi)旅游收入373.10億元
瓦格納撤軍 停止在俄境內(nèi)活動(dòng) 基本信息講解
每日短訊:完工!城軌中山北站鄰近兩條市政道路煥新升級(jí)
【天天新要聞】版主關(guān)閉 Reddit 兩周后,流量恢復(fù)正常
7月實(shí)施!海南統(tǒng)一使用僅銷售預(yù)包裝食品備案系統(tǒng)|當(dāng)前觀察
【熱聞】公園“上新”輕餐飲帳篷區(qū)游樂園 “千園之城”讓市民游客有更多選擇和體驗(yàn)
奧運(yùn)資格產(chǎn)生方法"變臉" 中國女排須再重視亞錦賽 全球熱訊
銀行喊你去更新身份信息?真的!身份證過期未更新會(huì)影響后續(xù)用卡_環(huán)球熱聞
住一晚8888元 金華的“豬景房”為何能賣這么貴? 環(huán)球快資訊
天天觀熱點(diǎn):端午假期文旅市場持續(xù)火爆 湖南累計(jì)接待游客416.39萬人次
三亞天涯區(qū)開展反走私拒絕“套代購”宣傳活動(dòng)
一百多位姐姐被拒,乘風(fēng)的門檻并不低,溫碧霞、葉全真也在其中|天天微頭條
"鹽博品夏·話端午"鹽城市博物館推端午民俗體驗(yàn)活動(dòng)
【世界快播報(bào)】徽縣銀杏樹鎮(zhèn)馬莊村鄉(xiāng)村建設(shè)示范村項(xiàng)目中標(biāo)公示


