ubuntu安装git服务

1、安装git服务器所需软件

需要root权限

sudo apt-get install git-core openssh-server openssh-client python-setuptools

注:

git-core:git核心软件

openssh-server和openssh-client:git通过ssh协议在服务器与客户端之间进行数据传输

python-setuptools:gitosis依赖

2、初始化服务器git用户信息

git config --global user.name "username"

git config --global user.email "****@gmail.com"

3、安装gitosis

git clone https://github.com/res0nat0r/gitosis.git

cd gitosis/

sudo python setup.py install

安装gitosis主要是给用户授权

4、创建git管理员账号、配置git

创建git账号(git)作为git服务器的管理员,可以管理其他用户的项目权限

sudo useradd -m git

sudo passwd git

创建仓库存储点(如在/home目录下),并设置只有git用户拥有所有权限,其他用户没有任何权限

sudo mkdir /home/gitrepository

sudo chown git:git /home/gitrepository/

sudo chmod 700 /home/gitrepository/

5、创建仓库映射链接

由于gitosis默认状态下会将仓库放在用户的repositories目录下,例如git用户的仓库默认在/home/git/repositories/目录下,所以需要创建一个链接映射,让他指向前面创建的专门用于存放项目的仓库目录/home/gitrepository

su - git

ln -s /home/gitrepository /home/git/repositories

6、(git用户下)生成公钥

ssh-keygen -t rsa

7、对gitosis初始化

利用6生成的公钥id_rsa.pub对gitosis进行初始化

gitosis-init < ~/.ssh/id_rsa.pub

gitosis主要是通过gitosis-admin.git仓库来管理一些配置文件的,如用户权限的管理。这里我们需要对其中的一

个post-update文件添加可执行的权限。

sudo chmod 755 /home/gitrepository/gitosis-admin.git/hooks/post-update

8、服务器上创建项目仓库

su - git

cd /home/gitrepository

git init --bare test.git

9、客户端操作git仓库

首先在客户端生成ssh公钥

把服务器上的gitosis-damin.git仓库克隆到客户端机器上

git clone git@192.168.1.20:repositories/gitosis-admin.git

clone下来后会有一个gitosis.conf的配置文件和一个keydir的目录

gitosis.conf用于配置用户的权限信息

keydir主要存放用户ssh公钥文件(一般以“用户名.pub”命名,gitosis.conf配置文件中需使用相同用户名),用于认证请求的客户端机器

把客户端机器生成的.pub文件改个名字(格式“用户名.pub”)复制到keydir目录下

编辑gitosis.conf文件

[gitosis]
[group gitosis-admin] ####管理员组
members = charn@ubuntu ####管理员用户名,需要在keydir目录下找到相应的.pub文件,多个可用空格隔开(
下同)
writable = gitosis-admin####可写的项目仓库名,多个可用空格隔开(下同)

[group testwrite] ####可写权限组
members = zhangsan####组用户
writable = mytestproject####可写的项目仓库名

[group testread]####只读权限组
members =lisi####组用户
readonly= mytestproject####只读项目仓库名

因为这些配置的修改只是在本地修改的,还需要推送到服务器中才能生效。

    ubuntu:~/gitadmin/gitosis-admin$ git add .  
    ubuntu:~/gitadmin/gitosis-admin$ git commit -am "add a user permission"  
    ubuntu:~/gitadmin/gitosis-admin$ git push origin master  
10、新建git项目

1)首先创建git远程仓库

git init --bare project.git

2)在客户端创建项目

mkdir project

3)客户端git项目与远程仓库关联

cd testgit  
git init  
git add .  
git commit -am "init a base version,add a first file for push to server"  
git remote add origin git@192.168.1.20:repositories/project.git  
git push origin master 

 

删除git remote rm origin

 

11、支持web

安装lighttpd:  sudo apt-get install lighttpd

在远程仓库home/gitrepository开启git web服务: git instaweb

访问ip:1234端口即可

若端口被占用执行如下命令: pkill lighttpd, 再重新执行git instaweb

 

错误:

1、/usr/sbin/lighttpd: symbol lookup error: /usr/sbin/lighttpd: undefined symbol: FAMNoExists

sudo apt-get install gamin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值