搭建私有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
二、伺服器設定
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 yrscgit@yrsc0597.com:/srv/yrsc.git
4、新增遠端倉庫
四、測試
-
本地更改,新增,刪除專案,然後推送修改到遠端倉庫
-
伺服器專案目錄下拉取最新的版本
相關文章
- 版本控制系統之基於httpd搭建私有git倉庫httpdGit
- 自建Git Server 並使用Git進行Unity版本控制及Git workflow(一、安裝git server)GitServerUnity
- Git(1) —— 版本控制Git
- 如何使用CVS進行版本控制
- Git 版本控制工具的使用Git
- git引入_版本控制介紹Git
- 版本控制系統之gitGit
- Git分散式版本控制工具Git分散式
- Git程式碼版本控制流程Git
- Git 伺服器搭建Git伺服器
- git 入門教程之版本控制Git
- 版本控制工具——Git常用操作(下)Git
- 版本控制工具——Git常用操作(上)Git
- Git版本控制系統安裝Git
- Git版本控制與優缺點Git
- nexus 上搭建npm私有伺服器NPM伺服器
- ubuntu centos搭建版本控制svnUbuntuCentOS
- Centos搭建git伺服器CentOSGit伺服器
- Git 版本控制系統的完整指南Git
- 一、Git分散式版本控制系統Git分散式
- 使用Java和Flyway進行資料庫版本控制Java資料庫
- net5 webapi中 SwaggerUI如何進行版本控制WebAPISwaggerUI
- 集中式版本控制與分散式版本控制——Git 學習筆記01分散式Git筆記
- Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)LinuxGit伺服器CentOS
- 搭建自己的 Git 伺服器Git伺服器
- git在伺服器建立版本庫Git伺服器
- 使用git不希望檔案被版本控制Git
- Git打標籤與版本控制規範Git
- Git新手教程-什麼是版本控制(一)Git
- git使用系列01-->版本控制介紹Git
- 第22篇 如何部署gitLab進行開發版本控制Gitlab
- web前端技術-教你如何部署私有Git伺服器?Web前端Git伺服器
- 《Git團隊協作》之Docker快速搭建GitLab私有倉庫DockerGitlab
- Windows下的git伺服器搭建WindowsGit伺服器
- 在CentOS上搭建git伺服器CentOSGit伺服器
- 版本控制軟體Git的安裝與使用Git
- Git與其他版本控制系統的區別Git
- Consul Config 使用Git做版本控制的實現Git