搭建私有git服務器進行版本控制

一、安裝git


分別在服務器和本地安裝最新版本的git


1、服務器上源碼安裝最新版git


通常centos上使用yum源安裝的git版本過低


檢查系統上是否已經安裝git,若已有則卸載


// 查看當前git版本
# git --version
git version 1.7.1

// 卸載舊版本
# yum remove -y git


安裝依賴包,下載最新版本git源碼


# yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
# wget https://github.com/git/git/archive/v2.13.2.tar.gz
# tar zxf v2.13.2.tar.gz


安裝git,配置環境變量


# cd git-2.13.2
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc    // 實時生效


查看git版本號,正確顯示則安裝成功


# git --version
git version 2.13.2


若編譯時報錯如下


libgit.a(utf8.o): In function `reencode_string_iconv':
/usr/local/src/git-2.13.2/utf8.c:463: undefined reference to `libiconv'

libgit.a(utf8.o): In function `reencode_string_len':
/usr/local/src/git-2.13.2/utf8.c:524: undefined reference to `libiconv_open'

/usr/local/src/git-2.13.2/utf8.c:535: undefined reference to `libiconv_close'
/usr/local/src/git-2.13.2/utf8.c:529: undefined reference to `libiconv_open'

collect2: ld returned 1 exit status
make: *** [git-credential-store] Error 1


可以按照如下方式解決


// 對之前git的make 操作進行 make clean
# make clean
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
# tar zxf libiconv-1.14.tar.gz
# cd libiconv-1.14
# ./configure --prefix=/usr/local/libiconv
# make && make install
// 創建一個軟鏈接到/usr/lib
# ln -s /usr/local/lib/libiconv.so /usr/lib
# ln -s /usr/local/lib/libiconv.so.2 /usr/lib


然後


# make configure
# ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv/
# make && make install
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc


配置git 用戶名及郵箱


# git config --global user.name 'your name'
# git config --global user.email 'your email address'


2、本地安裝最新版git(此處演示爲Windows上安裝)


  • windows上安裝直接下載最新版安裝包,雙擊->下一步… 即可完成安裝

  • 所有選項默認即可

  • 打開 git-bash,配置git 用戶名和郵箱,同服務端配置第6步

  • 想要學習Java高架構、分佈式架構、高可擴展、高性能、高併發、性能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分佈式項目實戰學習架構師視頻免費獲取   架構羣:835544715

  • 點擊鏈接加入羣聊【JAVA高級架構】:https://jq.qq.com/?_wv=1027&k=5dbERkY


二、服務器設置


1、添加一個git用戶,爲安全起見禁用shell登錄


# useradd git

// 爲安全起見,禁用 git 用戶的 shell 登錄
vim /etc/passwd
// 修改 git 用戶的 shell 爲 git-shell,路徑使用 which git-shell 查看
// 找到如下一行
git:x:1001:1001::/home/git:/bin/bash
// 修改成如下
git:x:1001:1001::/home/git:/usr/local/git/bin/git-shell


2、初始化一個項目目錄爲一個倉庫


// 進入到項目目錄
# git init


3、將該目錄克隆成爲裸倉庫(作爲中介)並設置裸倉庫所有者爲git用戶


// 創建一個裸倉庫
# git clone --bare ProjectPath /srv/myProject.git


4、將裸倉庫添加爲遠程倉庫


// 進入到項目目錄
# git remote add origin /srv/myProject.git

// 修改遠程倉庫所屬主和所屬組
# chown -R git.git /srv/myProject.git


5、將服務器上的項目添加到遠程倉庫即 /srv/myProject.git


# git add .
# git commit -m 'comment'
# git push origin master


6、在該用戶的家目錄下面保存本地用戶的公鑰


# su git
$ cd ~
$ make .ssh
$ chmod 700 .ssh
$ cd .ssh
$ touch authorized_keys
$ chmod 600 authorized_keys
// 然後在 authorized_keys 文件中加入本地用戶的公鑰 id_rsa.pub


7、打開git服務器的RSA認證


# vim /etc/ssh/sshd_config
// 找到下面3行並去掉註釋
1. RSAAuthentication yes     
2. PubkeyAuthentication yes     
3. AuthorizedKeysFile  .ssh/authorized_keys


三、本地設置(Windows端)


1、生成公鑰並交給服務端


// 打開 git-bash,生成公鑰
$ ssh-keygen -t rsa
// 在用戶目錄下的.ssh目錄裏面會生成 id_rsa, id_rsa.pub
// 將 id_rsa.pub 裏的內容拷貝到服務器上


2、在保存公鑰的同級目錄下面新建config文件指定ssh端口(可選)


==類似使用搬瓦工VPS的可能默認ssh端口不是22的需要配置這個==


Host your domain name or server ip
User 服務端添加的git用戶名
Hostname your domain name or server ip
Port ssh 端口
IdentityFile ~/.ssh/id_rsa


3、從服務器克隆項目到本地


$ git clone [email protected]:/srv/yrsc.git


4、添加遠程倉庫


四、測試


  • 本地更改,添加,刪除項目,然後推送修改到遠程倉庫

  • 服務器項目目錄下拉取最新的版本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章