腾讯云 Ubuntu16.04 搭建Git 服务

一.安装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的相对路径
错误:[email protected]:gitosis-admin.git
正确:[email protected]:/home/git/repositories/gitosis-admin.git

输入 :sudo clone [email protected]:/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 protected]”

2. 将生成的公钥文件一般在  C:/用户/自己的用户名/.ssh 下的
id_rsa.pub

3. 管理员收集这些文件,分别按用户名命名好,复制到刚才的keydir目录下。

4. 编辑gitosis.conf文件管理用户权限

[gitosis]

[group gitosis-admin]      #管理员
members = [email protected] #管理员用户名,需要在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
[email protected]***.***:mytestproject.git

3. 本地添加一个log.txt 文件

4. 然后将添加的文件提交,输入:

git  add .

git  commit  –m 
"add a log.txt"

git push origin master

5. 检查git历史状态

ok !

原文地址:https://www.cnblogs.com/tyche116/p/10037615.html

时间: 2024-10-14 15:29:55

腾讯云 Ubuntu16.04 搭建Git 服务的相关文章

Ubuntu-16.04搭建DHCP服务

Ubuntu-16.04搭建DHCP服务 一.什么是DHCP DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理.分配IP地址,使网络环境中的主机动态的获得IP地址.Gateway地址.DNS服务器地址等信息,并能够提升地址的使用率. 二.安装DHCP服务软件 安装isc-dhcp-server: sudo apt-get install isc-dhcp-server 三.配置DHCP服务

腾讯云ubuntu16.04下部署django项目

服务器:腾讯云 s2 标准版 系统版本:ubuntu 16.04 django版本:1.10 项目的部署步骤: 一:安装uwsgi 1.安装uwsgi之前首先要配置c-python解释器:sudo apt-get install build-essential python-dev 2.安装uwsgi:sudo pip install uwsgi 3.测试是否安装成功uwsgi --http :8000 --wsgi-file test.py 可以看到安装成功,先把uwsgi结束 二: 1.在我

Ubuntu16.04 搭建pptp服务

安装pptpd PPTP协议 我们要使用PPTP协议搭建×××,首先验证服务器是否支持MPPE模块 sudo modprobe ppp-compress-18 && echo MPPE is ok 如果输出:MPPE is ok,则说明服务器的linux内核支持MPPE模块,否则请升级linux内核到2.6.15以上版本. 安装PPTP sudo apt-get updatesudo apt-get install pptpd 配置PPTP 配置网关和IP分配段 sudo vim /etc

如何在服务器上搭建git服务及上传本地代码

1. 在云服务器上搭建git服务 https://www.cnblogs.com/ucos/p/3924720.html 这篇文章已经详细的介绍了如何配置和安装 但是文章略微有点老 在配置环节稍微有点不一样 配置完 参照教程 就可以运行 2.创建远程库 3.添加用户 4.添加完用户后 该用户可以在本地clone该库 5.将代码复制到文件夹下 并提交推送 代码就上传到远程库里了 6.如何切出一个分支 在本地新建一个分支 然后推到服务端 点击分支可以在服务端删除掉远程分支 原文地址:https://

Ubuntu16.04搭建LAMP开发环境

Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置网络环境 管理员给分配了一个静态IP,所以还需要进一步配置网络环境 配置DNS:右上角网络连接->编辑链接->有线连接1->IPv4设置->DNS服务器:202.112.80.106->保存 登陆网关:对于校园网用户来说,登陆网关才能访问外网 测试: ping www.baidu

flask项目部署到阿里云 ubuntu16.04

title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始之前 购买阿里云ecs一周版, 参考 购买万网域名(也是阿里家的) 过程: # apt update # apt upgrade # apt install python-virtualenv # apt install nginx git 下载源码: # git clone 我的博客源码地址 &&a

【CUDA 基础】0.0 腾讯云CUDA环境搭建

title: [CUDA 基础]0.0 腾讯云CUDA环境搭建 categories: CUDA Freshman tags: CUDA 环境搭建 toc: true date: 2018-02-13 22:04:54 Abstract: 本文主要为不支持CUDA的电脑用户提供一个可供选择的CUDA学习环境 Keywords: 腾讯云,CUDA,GPU云 开篇废话 今天我们开始学习CUDA,又到了一年一次的,逼婚,催生,问工资,问成绩,炫富,炫孩子,炫工作的节日了.我还是想找个地方安安静静的看看

Ubuntu 16.04搭建puppet服务

Ubuntu 16.04搭建puppet服务: Puppet是一种配置管理工具,可帮助系统管理员自动执行服务器基础架构的配置和管理. 一.安装软件 master: curl -O https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb dpkg -i puppetlabs-release-pc1-xenial.deb apt-get update apt-get install puppetserver ln -s /opt/pu

一位云架构师用服务打动客户的故事之七「腾讯云·如何在临场用服务拿下甲方Boss认可?」

距离上一篇文章有很久了,确实一直想保持这种节奏,但一直出现'脱更'的情况实属无奈.除个人工作的调整之外更多是因为到处出差'飞'的状态. 时间越久,越是发现技术和沟通的两把武器,技术在技术人员身上是没有问题的,但是在沟通上问题极大.虽然说'自古套路得人心',但初心总归是好的.在国内,目前有非常的做云计算服务的公司,今年格外多.尤其是伴随华为云发力.AWS发力和各类公有云在基础架构上的'白菜价'上,对'迁移.上云服务.对持续运维服务'上有简单而又粗暴的需求.因为信息敏感问题,最终用户以"用户&quo