1. 程式人生 > 其它 >|NO.Z.00008|——————————|^^ 部署 ^^|——|Git&Git私有伺服器部署.V01|--------------------------------------------|Git.Server部署&Linux|

|NO.Z.00008|——————————|^^ 部署 ^^|——|Git&Git私有伺服器部署.V01|--------------------------------------------|Git.Server部署&Linux|



[Development:Git&Git私有伺服器部署.V01]                                                        [Programming.Development] [Git私有伺服器部署/makefile方式/本地與Git伺服器程式碼交換]








一、在linux伺服器上搭建私有Git服務程式:
### --- 在linux伺服器上搭建私有Git服務程式:

~~~     # make編譯方式
~~~     遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。
~~~     GitHub就是一個免費託管開原始碼的遠端倉庫。
~~~     但是對於某些視原始碼如生命的商業公司來說,既不想公開原始碼,
~~~     又捨不得給GitHub交保護費,那就只能自己搭建一臺Git伺服器作為私有倉庫使用。
二、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)