腾讯云 Ubuntu16.04 搭建Git 服务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了腾讯云 Ubuntu16.04 搭建Git 服务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3612字,纯文字阅读大概需要6分钟。
内容图文
一.安装Git服务器所需软件
1.安装git-core, openssh-server, openssh-client三个软件。git-core是git的核心软件; openssh-server、openssh-client是服务器和客户端传输文件通过ssh协议。
输入:sudo apt-get install git-core openssh-server openssh-client
2. 初始化git服务器用户信息。
输入:git config --global user.name ”Tyche***”
git config --global user.email ”8057*****@qq.com”
3. 安装python-setuptools软件。
输入:sudo apt-get install python-setuptools
4.安装gitosis。Gitosis主要用于管理用户对仓库的操作权限。
安装:git clone https://github.com/res0nat0r/gitosis.git
进入gitosis目录: cd gitosis/
使用安装目录下的setup.py的脚本安装。输入:sudo python setup.py install
二.配置Git服务器
1.创建git管理员账户
增加用户命令:sudo useradd -m git
修改git用户密码:sudo passwd git
2. 初始化gitosis
在服务端生成SSH公钥,输入命令:ssh-keygen -t rsa
这里会提示输入密码,直接回车即可。
用刚生成公钥id_rsa.pub来对gitosis进行初始化。输入命令:sudo -H -u git gitosis-init < /root/.ssh/id_rsa.pub
3. 添加git用户对文件夹的权限
输入: sudo chown git:git /home/git/repositories
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
sudo chmod 755 /home/git/repositories
三.创建项目仓库
使用git账户在服务器上创建一个目录(mytestproject.git)并初始化成git项目仓库。
ubuntu:/home/git$ su git
~git$ cd /home/git/repositories
~git$ mkdir mytestproject.git
~git$ cd mytestproject.git/
~git$ git init --bare
四. gitosis管理用户操作权限
1. 首先需要一个管理员客户端,使用前面生成ssh公钥(用来初始化gitosis)的机器上将gitosis-admin.git的仓库clone下来。在管理员客户端机器上新建一个目录用于存放gitosis-admin.git仓库
clone时不能用绝对路径,只能写相对于git用户home的相对路径
错误:git@xxx.xxx.xxx.xxx:gitosis-admin.git
正确:git@xxx.xxx.xxx.xxx:/home/git/repositories/gitosis-admin.git
输入 :sudo clone git@xxx.xxx.xxx.xxx:/home/git/repositories/gitosis-admin.git
clone下来的gitosis-admin文件夹有一个gitosis.conf的配置文件和一个keydir的目录。keydir主要用户存放ssh公钥文件(一般以“用户名.pub”命名,gitosis.conf配置文件中需使用相同用户名),用于认证请求,gitosis.conf用于配置用户的权限。
1. 现在需要将授权的用户在自己的机器上生成相应的ssh公钥, 打开git bush并输入:ssh-keygen -t rsa -C “email@example.com”
2. 将生成的公钥文件一般在 C:/用户/自己的用户名/.ssh 下的 id_rsa.pub
3. 管理员收集这些文件,分别按用户名命名好,复制到刚才的keydir目录下。
4. 编辑gitosis.conf文件管理用户权限
[gitosis]
[group gitosis-admin] #管理员
members = charn@ubuntu #管理员用户名,需要在keydir目录下找到相应的.pub文件,多个管理员用空格隔开writable = gitosis-admin #可写的项目仓库名,多个仓库用空格隔开
[group testwrite] #建一个组:可写权限
members = abc #用户
writable = mytestproject #可写的项目仓库名
[group testread] #建一个组:只读权限
members =def #用户
readonly= mytestproject #只读的项目仓库名
本地修改完配置后,还需要推送到服务器才能生效。
ubuntu:~/gitadmin/gitosis-admin$ git add .
ubuntu:~/gitadmin/gitosis-admin$ git commit -am "add users"
ubuntu:~/gitadmin/gitosis-admin$ git push origin master
还需要在服务端重新启动一下sshd服务
ubuntu:~/gitadmin/gitosis-admin$ sudo /etc/init.d/ssh restart
服务端的git就已经安装和配置完成了,接下来就需要有权限的组成员在各自的机器上clone服务器上的相应项目仓库进行相应的工作了。
五.在客户端测试
1. 在本地新建一个mytestproject文件夹
2. 将空项目clone下来,输入 : git clone git@62.234.***.***:mytestproject.git
3. 本地添加一个log.txt 文件
4. 然后将添加的文件提交,输入:
git add .
git commit –m "add a log.txt"
git push origin master
5. 检查git历史状态
ok !
内容总结
以上是互联网集市为您收集整理的腾讯云 Ubuntu16.04 搭建Git 服务全部内容,希望文章能够帮你解决腾讯云 Ubuntu16.04 搭建Git 服务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。