环境:git
服务器 CentOS6.5 + git(version 2.8.0)github
1. 安装gitwindows
1)安装依赖包bash
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker服务器
2)下装git源码ssh
wget https://github.com/git/git/archive/v2.8.0.zipcurl
3)编译安装ide
解压git源码到当前目录测试
Unzip v2.8.0.zip url
把git安装到/usr/local/git目录下
make prefix=/usr/local/git all
make prefix=/usr/local/git install
4)修改环境变量
vi /etc/profile
export PATH=/usr/local/git/bin:$PATH
source命令可使配置马上生效
source /etc/profile
5)查看git版本
git --version 查看git版本,输出如下信息表示安装成功
git version 2.8.0
6)建立git用户(主要用来管理项目)
查看git用户是否已存在,存在则换个账号不存在则建立
id git
输出如下信息表示git用户不存在
id: git:无此用户
添加git用户
useradd git
设置git账号对应的密码
pwd 123
7)服务器端建立 Git 测试仓库(设置~/data/git/gittest.git 为 Git 仓库)
切换到git账号
su git
cd ~
mkdir -p data/git/gittest.git
git init --bare data/git/gittest.git
Initialized empty Git repository in /home/data/git/gittest.git/
cd data/git/
8)使用wind客户端连接git服务器
进入 Git Bash 命令行客户端,建立项目地址(设置在 d:/wamp64/www/gittest_gitbash)并进入:
dee@Lenovo-PC MINGW64 /d
$ cd wamp64/www
dee@Lenovo-PC MINGW64 /d/wamp64/www
$ mkdir gittest_gitbash
dee@Lenovo-PC MINGW64 /d/wamp64/www
$ cd gittest_gitbash
dee@Lenovo-PC MINGW64 /d/wamp64/www/gittest_gitbash
$
而后从 Linux Git 服务器上 clone 项目
$ git clone git@192.168.56.101:/home/data/gittest.git
当第一次链接到目标 Git 服务器时会获得一个提示:
The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ.
Are you sure you want to continue connecting (yes/no)?
选择 yes:
Warning: Permanently added '192.168.56.101' (RSA) to the list of known hosts.
此时 C:\Users\用户名\.ssh 下会多出一个文件 known_hosts,之后在这台电脑上再次链接目标 Git 服务器时不会再提示上面的语句。
后面提示要输入密码。
以上完成后表示git已经正式安装成功,可是这里有2个问题
一、客户端每次git连接都要输入密码操做起来很是麻烦
二、这里git连接输入的账号是服务器上git用户的密码,若是一不当心暴露了服务器很容易被攻击。
居于以上2点考虑,这种方式连接不靠谱。所以咱们须要安装gitolite来对git账号进行管理
2.gitolite安装
1)使用git账号登录服务器
cd ~
2)下载gitolite
git clone https://github.com/sitaramc/gitolite
3)gitolite安装
建立bin目录并安装gitolite到bin目录($表示当前用户)
mkdir $HOME/bin
gitolite/install -to $HOME/bin
4)配置gitolite管理员
cd ~
用git用户生成公钥(注:若是你是接着上面一直作下来的,那么只须要输入cd ,而后回车,则就进入了该用户的目录,若是不是git用户,则须要输入su – git,来切换到git用户)
ssh-keygen -t rsa
修改.ssh/id_rsa.pub 为admin.pub(为何要改为admin.pub 由于gitolite根据这个文件名来设立账号.我这里用admin
mv .ssh/id_rsa.pub admin.pub
5)使用管理员公钥安装gitolite(而后去/home/git/repositories 里面,能够看见仓库文件.gitolite-admin.git 和test.git 一个是管理仓库的,一个是测试用)
$HOME/bin/gitolite setup -pk admin.pub
6)生成管理员管理仓库(不须要输密码)
git clone git@127.0.0.1:gitolite-admin
进入仓库后能够看到conf 和keydir ,conf/gitolite.conf 是添加用户/仓库的配置, keydir 是放对应用户的公想·x钥.而且此时,admin.pub这个公钥能够删除了
7)添加新用户和新项目
先生成密钥(hurrican01为私钥,hurrican01.pub为公钥。私钥是windows客户服务用来免登陆用的)
ssh-keygen -t rsa(命名为hurrican01和hurrican01.pub)
修改 gitolite.conf
vi gitolite-admin/conf/gitolite.conf
这里是新增了一个hurrican01用户和一个user组
上面的配置含义是:
定义两个用户组: admin 和 user
定义两个版本库: gitolite-admin 和 project
用户admin 对 这两个版本库有(读 写 删除)RW+ 权限
user组对project 有 (读 写)RW 权限
也可按照格式,添加多个组,多个版本库
若有一个组中有多个用户,则以空格为分割。
把hurrican01.pub放在/home/git/gitolite-admin/keydir
*网上都说这时直接cmmit就能够,实际是不行的这时还须要设置authorized_keys
vi ~/.ssh/authorized_keys
而后再走提交流程这样才能够建立用户和项目
git add keydir/hurrican01.pub conf/gitolite.conf
git commit -am "new project"
git push origin master
提交完后,查看管理仓库中多了一个haodi.git
这个时候,服务器已经搭建完毕了
3.window Git环境配置
复制hurrican01(私钥)文件到 C:\Users\Administrator\.ssh目录,新建config文件并填写对应的内容:
如下内容表示git服务器ip地址对应的账号是hurrican01使用的私钥路径是 C:/Users/Administrator/.ssh/hurrican01(此路径用户可自行设置)
host git服务器IP地址
user hurrican01
hostname git服务器IP地址
port 22
identityfile C:/Users/Administrator/.ssh/hurrican01
这时打开git Bash 输入git clone git@git服务器ip地址:/项目路径若是能够下载则代表设置成功
若是有什么安装疑问欢迎发消息到个人我的邮箱质询,只要有时间必定回复。我的的邮箱地址是:hurrican_ok@126.com