日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux中央服务器,如何在Linux上搭建一个Git中央仓库

發(fā)布時(shí)間:2024/9/27 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux中央服务器,如何在Linux上搭建一个Git中央仓库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:本教程只面向那些個人開發(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。