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/

再次执行推送命令便可。

相关文章
相关标签/搜索