linux中央服务器,如何在Linux上搭建一个Git中央仓库
前言:本教程只面向那些個人開發(fā)者,想要自己在linux上搭建一個git中央倉庫用來上傳發(fā)布自己的項(xiàng)目。但是對于團(tuán)隊(duì)來說可能有更高的要求,可以使用gitlab搭建一個可視化的類似github的版本管理系統(tǒng)
測試環(huán)境
我使用的linux版本是Centos7,如果大家使用的是其他發(fā)行版本,步驟也都是一樣的
安裝Git
Centos上使用的是yum的安裝方式
yum install -y git
創(chuàng)建一個Git用戶來運(yùn)行Git服務(wù)
1.創(chuàng)建git用戶
adduser git
2.設(shè)置用戶密碼
passwd git
3.禁止shell登錄
vim /etc/passwd
找到git用戶的那一行并進(jìn)行修改
將
git:x:1001:1001:,,,:/home/git:/bin/bash
修改為
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣一來剛創(chuàng)建git用戶可以正常通過ssh使用git,但是無法登錄shell,會更加的安全
創(chuàng)建客戶端登錄證書
1.客戶端創(chuàng)建私鑰和公鑰
ssh-keygen -t rsa -C "12345678@qq.com"
創(chuàng)建后你的用戶主目錄下面就有個.ssh文件夾,里面的id.rsa就是私鑰,id.rsa_pub就是公鑰。公鑰里面的內(nèi)容待會要用到
2.git 服務(wù)器打開RSA驗(yàn)證
vim /etc/ssh/sshd_config
找到并去掉前面的#號
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
最后效果如圖所示
打開RSA驗(yàn)證
3.在git用戶的主目錄里新建.ssh文件夾,然后在文件夾里面新建文件authorized_keys
cd /home/git
mkdir .ssh
cd .ssh
vim authorized_keys
4.將客戶端的id.rsa_pub公鑰寫進(jìn)文件authorized_keys,一行一個。添加了這個以后你連接中央倉庫就不需要輸入密碼了,直接使用公鑰和私鑰的驗(yàn)證方式
創(chuàng)建git中央倉庫
1.進(jìn)入git用戶主目錄
cd /home/git
2.創(chuàng)建一個裸倉庫 (一般以.git結(jié)尾)
git init --bare test.git #以test.git為例子,當(dāng)然你可以叫任意名字
裸倉庫是沒有工作區(qū)的,純粹為了共享
3.修改倉庫用戶屬主
chown -R git:git test.git
使用git hook
中央倉庫其實(shí)只是一個中介,如果你想要把中央倉庫的代碼關(guān)聯(lián)到你域名掛載下的文件夾時(shí)候,就需要使用到git的鉤子來實(shí)現(xiàn),當(dāng)客戶端提交代碼到中央倉庫,中央倉庫能將代碼也推送到另外的一個文件夾下面
1.在服務(wù)器初始化一個本地倉庫
這個倉庫就是你虛擬主機(jī)指定的文件夾,也就是你輸入域名后會訪問到的那個文件夾
cd /var/www #進(jìn)入你虛擬主機(jī)的掛載目錄
git init #初始化git
git remote add origin /home/git/test.git #添加遠(yuǎn)程倉庫到隔壁的中央倉庫(滑稽)
chown -R git:git /var/www #修改服務(wù)器本地倉庫的用戶屬組
2.在中央倉庫中設(shè)置鉤子
進(jìn)入遠(yuǎn)程倉庫的鉤子目錄
cd /home/git/test.git/hooks
新建一個文件post-receive
vim post-receive
編寫shell腳本
#!/bin/sh
unset GIT_DIR
DeployPath=/var/www #這里的目錄是你自己虛擬主機(jī)的目錄
cd $DeployPath
git add . -A && git stash
git pull origin master
當(dāng)然你也可以視情況而定,將這個腳本編寫得更加強(qiáng)大
給文件post-receive添加可執(zhí)行權(quán)限
chmod +x post-receive
客戶端遠(yuǎn)程git服務(wù)器
這應(yīng)該也是大家最期待的步驟了,實(shí)現(xiàn)本地提交代碼上服務(wù)器,通過鉤子實(shí)現(xiàn)項(xiàng)目的自動部署
其實(shí)到了這一步,就和你以前使用git上傳代碼到github上面沒有什么區(qū)別了
1.克隆中央倉庫
方法一
git clone git@192.168.229.130:test.git #把ip換成你自己服務(wù)器的ip
方法二
git init
git remote add origin git@118.89.28.249:test.git #把ip換成你自己服務(wù)器的ip
2.推送遠(yuǎn)程服務(wù)器 (第一次加上-u參數(shù))
git push -u origin master
結(jié)尾
通過上面的這些步驟其實(shí)就可以實(shí)現(xiàn)一個簡易的git服務(wù)器了,是不是很簡單呢?
總結(jié)
以上是生活随笔為你收集整理的linux中央服务器,如何在Linux上搭建一个Git中央仓库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cgo的效率 golang_golang
- 下一篇: python土味情话_Python 将土