溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux下如何搭建Git服務(wù)器

發(fā)布時(shí)間:2022-01-26 10:36:12 來源:億速云 閱讀:156 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Linux下如何搭建Git服務(wù)器,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng)。眾所周知的Github便是基于Git的開源代碼庫以及版本控制系統(tǒng),由于其遠(yuǎn)程托管服務(wù)僅對(duì)開源免費(fèi),所以搭建本地Git服務(wù)器也是個(gè)較好的選擇。

Linux下如何搭建Git服務(wù)器

搭建環(huán)境:

服務(wù)器 CentOS6.6 + git(version 1.8.3.1)

客戶端 Windows10 + git(version 2.11.1.windows.1)

1. 安裝Git相關(guān)軟件

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 --version
git 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.2

2. 服務(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 
Initialized 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.conf keydir

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]$ ls
gitosis-admin.git  test.git

5.添加其他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
這樣就可以了。


關(guān)于“Linux下如何搭建Git服務(wù)器”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI