Git服務器搭建

[TOC]php

安裝Git

安裝依賴

yum install curl-devel expat-devel gcc gcc-c++ 
yum install perl perl-devel gettext-devel openssl-devel zlib-devel

編譯安裝Git

# 下載Git
wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

# 解壓
tar zxvf git-2.9.5.tar.gz
cd git-2.9.5

# 預編譯、編譯、安裝
make configure
./configure --prefix=/usr/local/git
make && make install

配置環境變量

vim /etc/profile
export PATH="$PATH:/usr/local/git/bin"
source /etc/profile # 使修改當即生效

服務器配置

建立Git用戶

建立一個git用戶組和用戶,用來運行git服務:c++

groupadd git
useradd git -g git

建立證書登錄

收集全部須要登陸的用戶的公鑰,公鑰位於id_rsa.pub文件中,把咱們的公鑰導入到/home/git/.ssh/authorized_keys文件裏,一行一個。git

若是沒有該文件須要建立它:shell

cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys

那麼如何在本身的客戶端生成公鑰呢?vim

若是是windows電腦能夠打開Git客戶端,若是是Mac能夠打開Mac自帶的終端,執行以下命令windows

ssh-keygen -t rsa -C "你的郵箱"  //例如ssh-keygen -t rsa -C "xxx@gmail.com"

上面的命令執行成功後,經過以下命令獲取公鑰服務器

cat ~/.ssh/id_rsa.pub

終端工具會把公鑰打印出來,複製公鑰,填入服務端的authorized_keys便可ssh

初始化Git倉庫

首先咱們選定一個目錄做爲Git倉庫,假定是/home/gitrepo/blog,在/home/gitrepo目錄下輸入命令:curl

cd /home
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo

git init --bare blog.git
# 執行完會有以下提示
Initialized empty Git repository in /home/gitrepo/blog.git/

以上命令Git建立一個空倉庫,服務器上的Git倉庫一般都以.git結尾。而後,把倉庫所屬用戶改成git:工具

chown -R git:git blog.git

克隆倉庫

git clone git@192.168.111.129:/home/gitrepo/blog.git
# 或
git clone ssh://git@192.168.111.129:22/home/gitrepo/blog.git  //版本庫地址,支持ssh協議

注意:若是此處提示git-upload-pack: command not found,能夠在版本服務器上使用 命令

ln -s /usr/local/git/bin/git-upload-pack /bin/

而後從新執行git clone 成功拉取項目後,就能夠在本地編輯提交了

touch index.php
git add index.php
git commit -a -m'提交index.php文件'
git push origin master   //推送到公共服務器

在執行push命令式,若是報 git-receive-pack: command not found錯誤,則再建立一個軟鏈接便可

ln -s /usr/local/git/bin/git-receive-pack /bin/

再次執行推送命令便可。

相關文章
相關標籤/搜索