周末花费时间在云服务器Ubuntu Server 14.04.1
系统上搭建了一个 git 服务器。搭建过程中还是遇到了一些小问题,在这里记录下来。
在终端输入以下命令:
ubuntu@VM-215-209-ubuntu: sudo apt-get install git-core openssh-server openssh-client
git-core
是git版本控制的核心软件。
安装openssh-server
和openssh-client
是由于 git 需要通过 ssh协议在服务器与客户端之间传输文件。
中间有个确认操作。如果安装提示失败,可能因为系统软件库索引文件太旧。更新一下,命令如下:
ubuntu@VM-215-209-ubuntu: sudo apt-get update
更新后重新执行安装命令即可。
安装Python的setuptools和gitosis ,由于gitosis安装需要依赖Python的一些工具,下面安装Python的setuptools.命令如下:
ubuntu@VM-215-209-ubuntu: sudo apt-get install python-setuptools
接下来准备安装gitosis,安装gitosis之前需要初始化一下服务器git用户信息。随便填
ubuntu@VM-215-209-ubuntu: git congif --global user.name "name"
ubuntu@VM-215-209-ubuntu: git congif --global user.email "***@qq.com"
下面安装gitosis,gitosis主要用于给用户授权。通过一些命令获取gitosis版本文件:
ubuntu@VM-215-209-ubuntu: git clone https://github.com/res0nat0r/gitosis.git
注意:中间有两个是数字零。
获取gitosis文件后,进入下面目录:
下面使用python命令安装目录下的setup.py的python脚本进行安装:
安装完成,下面开始对git进行一些基本配置。
创建一个账户(git)作为git服务器的管理员,可以管理其他用户权限。
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo useradd -m git
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo passwd git
然后再/home目录下创建一个项目仓库存储点,并设置只有git用户拥有所有权限,其他用户没有权限。
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo mkdir /home/gitrepository
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo chown git:git /home/gitrepository/
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo chmod 700 /home/gitrepository/
由于gitosis默认状态下将仓库放在用户的repositories目录下,添加一个链接,指向连接仓库的项目/home/gitrepository
ubuntu@VM-215-209-ubuntu:/home/git$ sudo ln -s /home/gitrepository /home/git/repositories
这里我使用在windows客户机中生成的ssh公钥:使用
ubuntu@VM-215-209-ubuntu:/home/git$ sudo -H -u git gitosis-init < /tmp/xjy.pub
上面是已存在的提示,因为我已经初始化过了
实际应该是:
Initialized empty Git repository in /home/gitrepository/gitosis-admin.git/
Reinitialized existing Git repository in /home/gitrepository/gitosis-admin.git/
对post-update
文件添加可执行权限。
ubuntu@VM-215-209-ubuntu:/home/git$ sudo chmod 755 /home/gitrepository/gitosis-admin.git/hooks/post-update
使用git账户在服务器上创建一个目录:
ubuntu@VM-215-209-ubuntu:/home/git$ su git
$ cd /home/gitrepository
$ mkdir mytask.git
$ cd mytask.git
$ git init --bare
$ exit
对gitosis进行配置,以便克隆项目:
先在客户端机器上克隆下gitosis-admin.git:
打开git bash:
$ git clone git@115.159.157.67:/gitosis-admin.git
Cloning into 'gitosis-admin'...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 1), reused 5 (delta 1)
Receiving objects: 100% (8/8), 1.09 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1/1), done.
Checking connectivity... done.
只有第一条是命令哈,下面是执行结果
克隆下来有一个gitosis.conf
用于配置权限。
keydir用于存放ssh公钥文件,(一般以“用户名.pub命名”。gitosis.conf
中使用相同的用户名。)
(注意:在windows中生成的.pub文件最后会有一个用户名。使用该名称比较好)
将.pub文件复制到keydir目录下 。修改gitosis.conf
文件
vim gitosis.conf
members 为用户名 与.pub
文件对应 多个用户以空格隔开
writable 可写项目组 ,以空格隔开
readonly 只读项目组,以空格隔开
提交修改到服务器:
git add .
git commit -m "add new"
git push origin master
新增用户不能生效:重启sshd服务
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo /etc/init.d/ssh restart
配置完成可以进行克隆:
提示mytask文件夹为空,但是已经克隆下来了~~ :
end
有问题欢迎补充...... by xjy .
相关推荐
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有