centos 搭建git服务器
首先服務(wù)器需安裝git
參考鏈接:https://www.cnblogs.com/-mrl/p/11045998.html
搭建git服務(wù)器
1.新建git倉庫主目錄,可以選擇創(chuàng)建在/data目錄下。也可以選擇放置在/var目錄下【mkdir -p :遞歸創(chuàng)建目錄,即使上級(jí)目錄不存在,會(huì)按目錄層級(jí)自動(dòng)創(chuàng)建目錄】
mkdir -p /data/gitrepos2.新建訪問用戶,下面新增zhangsan,lisi兩個(gè)git用戶,添加后用戶會(huì)生成/home/zahngsan家目錄;
useradd zhangsan useradd lisi或【適用于使用密碼登錄的情況】
seradd -M zhangsan //-M 表示不創(chuàng)建家目錄3.給用戶設(shè)置密碼,分別設(shè)置登陸密碼,拉取代碼和提交代碼需要提供密碼;
passwd zhangsan passwd lisi4.變更git倉庫的所有者到任何人 ,賦予nobody就是把權(quán)限給了所有人;
chown -R nobody:nobody /data/gitrepos5.修改git倉庫的讀寫權(quán)限,這樣子git倉庫就能讀寫了,否則會(huì)報(bào)錯(cuò)拒絕提交的;
chmod -R 755 /data6.修改用戶shell登陸權(quán)限(禁止客戶端shell登錄),找到最后頭的zhangsan、lisi,把冒號(hào)后面的/bin/bash改成/usr/local/git/bin/git-shell,就是你的git安裝目錄下的/bin/git-shell,然后保存退出。【每次都想輸入密碼則可忽略】
vi /etc/passwd?如:
7.添加用戶的SSH公鑰,免密碼登錄【使用密鑰對(duì)來增強(qiáng)安全性,并且免去輸密碼的麻煩,如需每次輸入密碼登錄該步驟可省去】。【每次都想輸入密碼則可忽略】
創(chuàng)建公鑰目錄
mkdir -p /home/zhangsan/.ssh切換目錄后創(chuàng)建密鑰存放文件
cd /home/zhangsan/.ssh vi authorized_keys將從zahngsan、lisi的電腦的C:/users/用戶名/.ssh目錄下找到id_rsa.pub,分別設(shè)置到對(duì)應(yīng)的用戶的.ssh目錄中authorized_keys文件中;
(PS1:如果張三沒有id_rsa.pub文件的話,那就用cmd執(zhí)行g(shù)it config --global user.name "zahngsan" git config --global user.email "張三的能接收郵件的郵箱",然后執(zhí)行 ssh-keygen,然后按三下回車【PS:它先要求你確認(rèn)保存公鑰的位置(.ssh/id_rsa),然后它會(huì)讓你重復(fù)一個(gè)密碼兩次,如果不想在使用公鑰的時(shí)候輸入密碼,可以留空。】,就有那個(gè)文件了)
(PS2:也可是使用以下方法獲取id_rsa.pub文件
? 下載git客戶端安裝好后右鍵選擇Git GUI Here->Help->Show SSH Key
?
)
命令截圖如下:
?
驗(yàn)證git服務(wù)器
1.linux git服務(wù)器創(chuàng)建裸倉庫目錄 創(chuàng)建裸倉庫目錄,test為項(xiàng)目名
mkdir -p /data/gitrepos/test2.linux git服務(wù)器創(chuàng)建裸倉庫 ,git服務(wù)器初始化倉庫的時(shí)候一定要加上--bare,否則你的倉庫不能推送代碼,test為項(xiàng)目名;
git init --bare /data/gitrepos/test/test.git3.linux git服務(wù)器修改git倉庫的讀寫權(quán)限,這樣子git倉庫就能讀寫了,否則會(huì)報(bào)錯(cuò)拒絕提交的,如果push出錯(cuò)有可能這里的權(quán)限問題;
chmod -R 777 /data/gitrepos/test4.在window安裝git客戶端,打開git bash切換到指定目錄,輸入git clone zhangsan@服務(wù)器IP:/data/gitrepos/test/test.git【PS:如git clone zhangsan@192.168.0.119:/data/gitrepos/test/test.git】,
然后按照提示輸入密碼就能clone項(xiàng)目;【PS:設(shè)置了SSH公鑰免密碼登錄則不需要輸入密碼】
5.在window然后增加個(gè)readme.txt或者其他文件,然后隨意添加文字內(nèi)容,然后在git bash切換到test目錄,執(zhí)行g(shù)it add readme.txt, git commit -m"新增readme文件", git push -u origin master,就看執(zhí)行push以后是否成功就行了。
linux 命令如下:
git bash命令如下:
?
?
把用戶添加到用戶組【可不設(shè)置】
1.新建訪問用戶組: groupadd developer(創(chuàng)建developer用戶組,你也可以改成其他的);
2.變更git倉庫的所有人為developer用戶組: chgrp -R developer /data/gitrepos/test, 這是修改權(quán)限給git用戶組的。
3.添加用戶到用戶組: usermod -G developer zhangsan, usermod -G developer lisi
如果團(tuán)隊(duì)很小,把每個(gè)人的公鑰收集起來放到服務(wù)器的authorized_keys文件里就是可行的。如果團(tuán)隊(duì)有幾百號(hào)人,就沒法這么玩了,這時(shí),可以用Gitosis來管理公鑰。
轉(zhuǎn)載于:https://www.cnblogs.com/-mrl/p/11050860.html
總結(jié)
以上是生活随笔為你收集整理的centos 搭建git服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员捅了个P0故障,公司股价反而涨了1
- 下一篇: 被侵权了!