ubuntu1804搭建git服务器
使? Gitosis 搭建私有 Git 服務器
軟件安裝
安裝 ssh 與 git
sudo apt-get install git-core openssh-server openssh-client //設置 git 全局的??名與郵箱 git config --global user.name "myname" git config --global user.email "myemail@gmail.com"安裝 Gitosis
//先安裝 python-setuptools,再? python 安裝 gitosis sudo apt-get install python-setuptools //clone 官? github 倉庫,??選擇 clone 到哪個?錄 git clone https://github.com/res0nat0r/gitosis.git //注意:中間有兩個是數字零cd gitosis/ sudo python setup.py installGitosis 的使?
通常情況下,?少需要兩個??來使? gitosis 來管理 git 倉庫,?個是倉庫服務器的所有者,?個是倉庫成員。
 ? . 倉庫服務器的所有者能夠創建新的倉庫
 ? .倉庫成員可以拉取??所在的倉庫,如果有寫權限,可以將修改提交到到服務端上去
 gitosis 的配置?件也是以 git 倉庫的形式存儲的,所以需要?個倉庫成員來管理這些配置?件,初始化gitosis 需要指定?個公鑰?件,該?件的所有者就是配置?件倉庫的成員,可以把他當做是管理員,負責收集其他倉庫成員的公鑰與編輯配置?件。
創建倉庫成員
倉庫成員只需要將本地的 ssh 公鑰,提交給管理管理 gitosis 的配置?件的?即可,管理員負責倉庫成員的配置。
?成公鑰
ssh-keygen -t rsa //到?標 ~/.ssh/ 下可以看到?成的公鑰?件 id_rsa.pub cd ~/.ssh //將公鑰?件復制?份,?件名修改為本地的??名與主機名,類似 name@computer.pub 這種形式 cp ./id_rsa.pub name@computer.pub //發送到到 gitosis 配置管理員的?上 scp ~/.ssh/name@computer.pub [管理員??名]@[管理員的IP]:[要發送到的?標?錄]創建倉庫服務器所有者
# ?般是?個新的系統?? sudo useradd -m git # 設置密碼 sudo passwd git # 切換到該?? su git # 初始化 gitosis sudo -H -u git gitosis-init < [負責管理配置?件的?的公鑰] # 初始化完成后,進?到???錄下,可以看到?成了兩個新?錄,其中的 repositories/ 是?來存放 git 倉庫 的# 修改 repositories/ ?錄的??權限,僅允許 git ??即倉庫服務器所有者進?操作 sudo chown git:git /home/git/repositories sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update sudo chmod 755 /home/git/repositories配置文件的使用
以下操作均由配置?件倉庫 gitosis-admin 的成員來完成
# 管理配置?件的??,將服務器上的配置?件倉庫 clone 下來 git clone git@[服務器的地址]:gitosis-admin.git # 進? gitosis-admin ?錄中,可以看到?個配置?件 gitosis.conf 與?個?錄 keydir/ # gitosis.conf 中可以為每?個倉庫配置成員與權限等信息 # keydir/ ?錄儲存所有倉庫成員的 ssh 公鑰 vim gitosis.conf # 打開 gitosis.conf# 其中的 group 標簽是分組; # writable 的值是倉庫的名稱,需要 repositories/ ?錄下存在同樣名稱的倉庫?錄,并以“.git”作為?錄名 的后綴; # member 的值是該標簽下分組下的所有倉庫的成員,多個成員?空格隔開,成員的名稱需要與 keydir/ ?錄 下的公鑰?件名相同; # 修改 gitosis.conf 或者添加了新的公鑰到 keydir/ ?錄下后,只需要像?般的 git 倉庫?樣將修改提交到遠程 倉庫即可應?新的配置; git add . git commit -m "描述改變的內容" git push origin master創建新的倉庫
創建倉庫需要兩個??進?操作,git ??創建新的倉庫,配置?件管理員為新倉庫編寫新的配置項并提交修改。
# git ??創建新倉庫 su - git cd ~/repositories/ git init --bare [倉庫名].git# 配置?件管理員修改配置項 su - [管理員賬號] cd [gitosis-admin 倉庫所在的?錄] vim gitosis.conf # 為新倉庫添加分組和成員例如添加了新倉庫 test,并將成員 member1@group1 與 member2@group1 設置為倉庫成員,在gitosis.conf ?件中添加:
[group test] wirtable = test members = member1@group1 member2@group1權限管理
gitosis 僅僅提供了?常簡單的權限控制,默認情況下,倉庫成員擁有倉庫的讀寫權限,可通過添加配置項,讓?部分成員只能夠讀取倉庫,?法提交修改。例如把上?例?中的成員 member2@group1,設置為只讀權限,在配置?件中可以這樣寫:
[group test] wirtable = test members = member1@group1 [group test_readonly] readonly = test members = member2@group1倉庫成員 clone 倉庫
git clone git@[服務器地址]:[倉庫名].git具有讀權限的成員才能夠成功 clone 到本地。
 具有寫權限的成員可以將修改提交到服務器的倉庫上。
總結
以上是生活随笔為你收集整理的ubuntu1804搭建git服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: -exec rm 与 xargs rm
- 下一篇: Emmaus Life Sciences
