Gitolite服务器配置(Ubuntu)

1 安装Git

sudo apt-get update(更新apt-get所能安装的软件的资源)

sudo apt-get install git(安装Git)

sudo apt-get installopenssl-server(安装openssl-server)

2 用户管理

sudo adduser --system --shell /bin/bash --group git(创建管理git的用户)

sudo adduser git ssh(添加用户到ssh组)

passed git(设置用户密码)

su git(切换到git用户)

ssh-keygen(ssh访问git服务器需要生成一组key)

cp ~/.ssh/id_rsa.pub authorized_keys(拷贝id_rsa.pub到authorized_keys)

3 安装gitolite

mkdir bin(在git用户下创建bin目录用于安装gitolite)

git clone git://github.com/sitaramc/gitolite(从github克隆gitolite)

~/gitolite/install -to ~/bin(gitolite安装1)

mv ~/.ssh/authorized_keys ~/git.pub(gitolite安装2)

~/bin/gitolite setup -pk ~/git.pub(gitolite安装3)

Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/

Initialized empty Git repository in /home/git/repositories/testing.git/

WARNING: /home/git/.ssh/authorized_keys missing; creating a new one

    (this is normal on a brand new install)


4 查看仓库

ssh git@127.0.0.1(查看管理仓库及testing仓库)

PTY allocation request failed on channel 0

hello git, this is git@iZ94o31qo4gZ running gitolite3 v3.6.5-10-g264c26b on git 1.9.1


 R W gitolite-admin

 R W testing

Connection to 127.0.0.1 closed.

git clone git@127.0.0.1:gitolite-admin(拉取管理仓库)

Cloning into 'gitolite-admin'...

remote: Counting objects: 6, done.

remote: Compressing objects: 100% (4/4), done.

Receiving objects: 100% (6/6), 741 bytes | 0 bytes/s, done.

remote: Total 6 (delta 0), reused 0 (delta 0)

Checking connectivity... done.

5 添加git用户

如果指定用户拉取指定仓库文件,需要指定用户在本地生成公钥文件(ssh-keygen -t rsa),然后将"xxx.pub"文件修改为添加用户的名称以便于服务端识别,假如用户名为"Lin",则修改对应的公钥文件为"Lin.pub",然后上传到服务端指定目录下:

scp Lin.pub git@120.24.200.100:gitolite-admin/keydir(将pub公钥拷贝到gitolite-admin仓库)

Lin.pub                                                        100%  414     0.4KB/s   00:00 

然后到服务端git用户目录(~/gitolite-admin/keydir)下查看文件

git.pub  Lin.pub


6 添加仓库

vim ~/gitolite-admin/conf/gitolite.conf(打开gitolite-admin/conf/gitolite.conf文件)

git@Lin:~/gitolite-admin$ cd ~/gitolite-admin/conf/

git@Lin:~/gitolite-admin/conf$ vim gitolite.conf 

repo gitolite-admin

    RW+     =   git


repo testing

    RW+     =  @all

添加仓库demo,RW:可读写,多用户使用空格隔开

repo gitolite-admin

    RW+     =   git


repo demo

    RW      =   git Lin


repo testing

    RW+     =  @all


7 gitolite-admin推送到gitolite服务器

由于6中仓库是基于本地添加的,并没有提交到gitolite-admin仓库,还无法识别添加用户的公钥,还需要将其推送到gitolite的服务器上,才会生效

git add .

git commit -m "Create demo repo.“

在以上的配置中,执行到这一步会出现如下错误:

*** Please tell me who you are.


Run


  git config --global user.email "you@example.com"

  git config --global user.name "Your Name"


to set your account's default identity.

Omit --global to set the identity only in this repository.


fatal: empty ident name (for <git@iZ94o31qo4gZ.(none)>) not allowed

然后执行:

git@Lin:~/gitolite-admin$ git config --global user.email "Lin@126.com"

git@Lin:~/gitolite-admin$ git config --global user.name "Lin"

git@Lin:~/gitolite-admin$ git commit -m "Create demo repo"

[master 0498f34] Create demo repo

 2 files changed, 4 insertions(+)

 create mode 100644 keydir/Lin.pub

git push origin master (推送到服务器)

git@Lin:~/gitolite-admin$ git push origin master

Counting objects: 10, done.

Compressing objects: 100% (5/5), done.

Writing objects: 100% (6/6), 819 bytes | 0 bytes/s, done.

Total 6 (delta 0), reused 0 (delta 0)

remote: Initialized empty Git repository in /home/git/repositories/demo.git/

To git@127.0.0.1:gitolite-admin

   6a52a01..0498f34  master -> master


8 Lin客户端clone demo仓库

Lin-MacBook-Pro:~ Lin$ git clone git@120.24.200.100:demo

Cloning into 'demo'...

remote: Counting objects: 3, done.

remote: Total 3 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (3/3), done.

Checking connectivity... done.


9 完成


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值