|NO.Z.00008|——————————|^^ 部署 ^^|——|Git&Git私有伺服器部署.V01|--------------------------------------------|Git.Server部署&Linux|
阿新 • • 發佈:2022-03-27
[Development:Git&Git私有伺服器部署.V01] [Programming.Development] [Git私有伺服器部署/makefile方式/本地與Git伺服器程式碼交換]
一、在linux伺服器上搭建私有Git服務程式:
二、Git服務部署環境### --- 在linux伺服器上搭建私有Git服務程式: ~~~ # make編譯方式 ~~~ 遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。 ~~~ GitHub就是一個免費託管開原始碼的遠端倉庫。 ~~~ 但是對於某些視原始碼如生命的商業公司來說,既不想公開原始碼, ~~~ 又捨不得給GitHub交保護費,那就只能自己搭建一臺Git伺服器作為私有倉庫使用。
### --- 環境準備:
~~~ Linux主機:centos7.6-1810
~~~ Git版本:git-2.5
一、安裝Git伺服器:
### --- 環境準備:
[root@localhost ~]# yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc gcc-c++ autoconf perl-ExtUtils-MakeMaker package
### --- 下載Git-2.5.0版本並解壓tar包生成makefire: [root@localhost ~]# wget https://www.kernel.org/pub/software/scm/git/git-2.5.0.tar.gz [root@localhost ~]# tar -zxvf git-2.5.0.tar.gz
~~~ 生成makefile
[root@localhost git-2.5.0]# autoconf
[root@localhost git-2.5.0]# ./configure prefix=/usr/local/git/
### --- make && make install
[root@localhost git-2.5.0]# make
GEN bin-wrappers/test-wildmatch
GEN git-remote-testgit
[root@localhost git-2.5.0]# make install hatchanged; do \ rm -f "$execdir/$p" && \ test -z "" && \ ln "$execdir/git" "$execdir/$p" 2>/dev/null || \ ln -s "git" "$execdir/$p" 2>/dev/null || \ cp "$execdir/git" "$execdir/$p" || exit; \ done && \ remote_curl_aliases="git-remote-https git-remote-ftp git-remote-ftps" && \ for p in $remote_curl_aliases; do \ rm -f "$execdir/$p" && \ test -z "" && \ ln "$execdir/git-remote-http" "$execdir/$p" 2>/dev/null || \ ln -s "git-remote-http" "$execdir/$p" 2>/dev/null || \ cp "$execdir/git-remote-http" "$execdir/$p" || exit; \ done && \ ./check_bindir "z$bindir" "z$execdir" "$bindir/git-add"
### --- 配置生效檔案及軟連線:
[root@localhost git-2.5.0]# vim /etc/profile // 將git指令新增到bash中
export PATH=$PATH:/usr/local/git/bin // 在profile中新增該內容
[root@localhost git-2.5.0]# source /etc/profile // 使配置檔案生效
~~~ 建立軟連線
[root@localhost ~]# ln -s /usr/local/git/bin/git /usr/bin/
[root@localhost git-2.5.0]# git -version
git version 2.5.0
### --- 新增使用者:此命令執行後會建立/home/git目錄作為git使用者的主目錄。
[root@localhost ~]# adduser -r -c 'git version control' -d /home/git -m git
[root@localhost ~]# passwd git // 為git使用者建立密碼
[root@localhost ~]# su git // 切換到git使用者之下
### --- 建立repo1倉庫
[git@localhost ~]$ git --bare init /home/git/repo1
Initialized empty Git repository in /home/git/repo1/ // 建立git倉庫repo1.並初始化倉庫。推薦使用git --bare init
// 如果不使用“--bare”引數,初始化倉庫後,提交master分支時報錯。
// 這是由於git預設拒絕了push操作,需要.git/config新增如下程式碼:
[receive]
denyCurrentBranch = ignore
[git@localhost ~]$ ls
repo1 // 檢視伺服器上的遠端倉庫建立完成。
二、、把本地倉庫推送到伺服器上
### --- 在本地電腦:右鍵——>Git Bash Here
~~~ 使用命令與遠端伺服器建立連線
~~~ 私有git伺服器搭建完成後就可以向連線github一樣連線使用了,
~~~ 但是我們的git伺服器並沒有配置金鑰登入,所以每次連線時需要輸入密碼。
~~~ 這種形式和剛才使用的形式好像不一樣,前面有ssh:
$ git remote add origin ssh://[email protected]/home/git/repo1
~~~ # 字首,也可以這樣執行
$ git remote add origin [email protected]:repo1
三、本地與遠端伺服器實現程式碼交換:
### --- 推送:
~~~ 把本地版本庫檔案推送到遠端伺服器repo1 版本庫中:
~~~ 在.git的工作目錄之下——>右鍵——>git同步——>遠端URL:管理——>遠端:private-git
~~~ ——>URL: ssh://[email protected]/home/git/repo1——>儲存
~~~ ——>推送:伺服器使用者名稱:密碼——>推送完成——>在Git伺服器遠端倉庫就可檢視到倉庫檔案——>END
### --- 在Git服務端檢視推送的資料
[git@localhost ~]$ ls repo1/
branches config description HEAD hooks info objects refs
### --- 拉取:
~~~ 從遠端伺服器git版本庫中下載原始碼檔案
~~~ # 在clone-repos目錄下:
~~~ 右鍵——>Git 克隆——>URL: ssh://[email protected]/home/git/repo1
~~~ ——>目錄:E:\NO.2——GitHub Repository\Repository\clone-repos\repo1
~~~ ——>使用者名稱:密碼——>克隆完成——END
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)