在雲服務器上搭建git服務


本文所有操作均基於阿里雲服務器及CentOS 7.7系統,所有操作均使用root用戶完成。 

本文最終達成的目的:搭建一個私有git服務器,用於自己多台電腦之間的項目同步;同時可以允許任何人使用git協議clone其中的某些項目。 

首先,我們在本地安裝git。我使用的是Windows系統,可以直接從官網下載安裝包進行安裝,安裝過程就不在此贅述了。

1、在服務器上安裝git(參考博客

在服務器端安裝git的主要目的有2個:其一是用於在服務器上新建倉庫,其二是作為git協議的deamon使用。由於CentOS的包管理器自帶的git版本太低,因此我們不使用包管理器自帶的git。當然如果你願意使用自帶版本的git,你可以直接執行

yum install git

來安裝。在此,我仍然希望使用最新版的git,因此需要自行編譯安裝。首先,卸載系統自帶的git,並安裝一些依賴:

yum remove git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

之后,我們創建一個目錄用來放置我們下載的源代碼。由於我使用的是root賬戶登錄,因此執行 

cd /root
mkdir code

創建好目錄之后,我們從官網上下載git的源代碼以及其依賴的libiconv(下載鏈接)。下載好之后,通過ftp工具上傳到/root/code目錄中。

 

首先解壓並安裝libiconv庫(此處文件名根據你下載的版本不同有所不同): 

cd /root/code
tar zxvf libiconv-1.16.tar.gz
cd libiconv-1.16
./configure --prefix=/usr/local/libiconv
make
make install

然后,編譯安裝git:

cd /root/code
tar zxvf git-2.26.1.tar.gz
cd git-2.26.1.tar.gz
./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
make
make install

安裝完成之后,我們將安裝后git可執行文件的連接到/usr/bin: 

ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
ln -s /usr/local/git/bin/git /usr/bin/git
ln -s /usr/local/git/bin/git-shell /usr/bin/git-shell
ln -s /usr/local/git/bin/git-upload-archive /usr/bin/git-upload-archive
ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack

接下來,可以查看git的版本是否為我們安裝完成的版本:

# git version
git version 2.26.1

2、搭建git服務器(參考官方教程

git服務器,簡單而言就是一個提供ssh訪問的服務器而已。我們需要做的只有一台支持ssh訪問的服務器,以及合適的權限管理而已。如果服務器作為私有使用,配置就變得更加簡單了:只需要新建一個git賬戶(防止直接使用root賬戶導致的安全問題)、配置好服務器上的公鑰並在服務器上創建裸倉庫即可。

首先,我們新建一個

git組,並在組內新建一個 git賬戶: 
groupadd git
adduser git -g git

現在git用戶的家目錄為

/home/git
我們切換到git用戶 
su git
cd /home/git


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM