ubuntu1804搭建git服务器
使⽤ Gitosis 搭建私有 Git 服务器
软件安装
安装 ssh 与 git
sudo apt-get install git-core openssh-server openssh-client //设置 git 全局的⽤⼾名与邮箱 git config --global user.name "myname" git config --global user.email "myemail@gmail.com"
安装 Gitosis
//先安装 python-setuptools,再⽤ python 安装 gitosis sudo apt-get install python-setuptools //clone 官⽅ github 仓库,⾃⾏选择 clone 到哪个⽬录 git clone https://github.com/res0nat0r/gitosis.git //注意:中间有两个是数字零cd gitosis/ sudo python setup.py install
Gitosis 的使⽤
通常情况下,⾄少需要两个⽤⼾来使⽤ gitosis 来管理 git 仓库,⼀个是仓库服务器的所有者,⼀个是仓库成员。
. 仓库服务器的所有者能够创建新的仓库
.仓库成员可以拉取⾃⼰所在的仓库,如果有写权限,可以将修改提交到到服务端上去
gitosis 的配置⽂件也是以 git 仓库的形式存储的,所以需要⼀个仓库成员来管理这些配置⽂件,初始化gitosis 需要指定⼀个公钥⽂件,该⽂件的所有者就是配置⽂件仓库的成员,可以把他当做是管理员,负责收集其他仓库成员的公钥与编辑配置⽂件。
创建仓库成员
仓库成员只需要将本地的 ssh 公钥,提交给管理管理 gitosis 的配置⽂件的⼈即可,管理员负责仓库成员的配置。
⽣成公钥
ssh-keygen -t rsa //到⽬标 ~/.ssh/ 下可以看到⽣成的公钥⽂件 id_rsa.pub cd ~/.ssh //将公钥⽂件复制⼀份,⽂件名修改为本地的⽤⼾名与主机名,类似 name@computer.pub 这种形式 cp ./id_rsa.pub name@computer.pub //发送到到 gitosis 配置管理员的⼿上 scp ~/.ssh/name@computer.pub [管理员⽤⼾名]@[管理员的IP]:[要发送到的⽬标⽬录]
创建仓库服务器所有者
# ⼀般是⼀个新的系统⽤⼾ sudo useradd -m git # 设置密码 sudo passwd git # 切换到该⽤⼾ su git # 初始化 gitosis sudo -H -u git gitosis-init < [负责管理配置⽂件的⼈的公钥] # 初始化完成后,进⼊到⽤⼾⽬录下,可以看到⽣成了两个新⽬录,其中的 repositories/ 是⽤来存放 git 仓库 的# 修改 repositories/ ⽬录的⽤⼾权限,仅允许 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
配置文件的使用
以下操作均由配置⽂件仓库 gitosis-admin 的成员来完成
# 管理配置⽂件的⽤⼾,将服务器上的配置⽂件仓库 clone 下来 git clone git@[服务器的地址]:gitosis-admin.git # 进⼊ gitosis-admin ⽬录中,可以看到⼀个配置⽂件 gitosis.conf 与⼀个⽬录 keydir/ # gitosis.conf 中可以为每⼀个仓库配置成员与权限等信息 # keydir/ ⽬录储存所有仓库成员的 ssh 公钥 vim gitosis.conf # 打开 gitosis.conf# 其中的 group 标签是分组; # writable 的值是仓库的名称,需要 repositories/ ⽬录下存在同样名称的仓库⽬录,并以“.git”作为⽬录名 的后缀; # member 的值是该标签下分组下的所有仓库的成员,多个成员⽤空格隔开,成员的名称需要与 keydir/ ⽬录 下的公钥⽂件名相同; # 修改 gitosis.conf 或者添加了新的公钥到 keydir/ ⽬录下后,只需要像⼀般的 git 仓库⼀样将修改提交到远程 仓库即可应⽤新的配置; git add . git commit -m "描述改变的内容" git push origin master
创建新的仓库
创建仓库需要两个⽤⼾进⾏操作,git ⽤⼾创建新的仓库,配置⽂件管理员为新仓库编写新的配置项并提交修改。
# git ⽤⼾创建新仓库 su - git cd ~/repositories/ git init --bare [仓库名].git# 配置⽂件管理员修改配置项 su - [管理员账号] cd [gitosis-admin 仓库所在的⽬录] vim gitosis.conf # 为新仓库添加分组和成员
例如添加了新仓库 test,并将成员 member1@group1 与 member2@group1 设置为仓库成员,在gitosis.conf ⽂件中添加:
[group test] wirtable = test members = member1@group1 member2@group1
权限管理
gitosis 仅仅提供了⾮常简单的权限控制,默认情况下,仓库成员拥有仓库的读写权限,可通过添加配置项,让⼀部分成员只能够读取仓库,⽆法提交修改。例如把上⾯例⼦中的成员 member2@group1,设置为只读权限,在配置⽂件中可以这样写:
[group test] wirtable = test members = member1@group1 [group test_readonly] readonly = test members = member2@group1
仓库成员 clone 仓库
git clone git@[服务器地址]:[仓库名].git
具有读权限的成员才能够成功 clone 到本地。
具有写权限的成员可以将修改提交到服务器的仓库上。
ubuntu1804搭建git服务器相关推荐
- centos7 下搭建git服务器
总的来说,搭建git和svn形式差不多 1.首先要在服务器安装git环境,创建用户密码和仓库等 2.然后个人主机(基本是window)安装git客户端 3.将个人主机客户端的秘钥写到git服务器的一个 ...
- 搭建Git服务器教程转载
1. 在Windows下使用ssh+msysgit客户端搭建Git服务器 http://www.codeproject.com/Articles/296398/Step-by-Step-Setup-G ...
- git进入项目目录 windows_Windows下搭建Git服务器
Windows平台下搭建Git服务器的图文详解及教程 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不 ...
- 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器
在自己的Linux虚拟机上,搭建git服务器,用来保存代码. centos7本身自带git,需要先卸载,安装成较新的版本. 1.卸载系统自带版本 系统已经自带 [root@dscrapy01 ~]# ...
- CentOs上搭建git服务器
CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...
- Windows下Git的安装和基本使用、搭建Git服务器
1 Git的安装和基本使用 安装完成桌面有个Git Bash图标: 弹出Git Bash:用 git init 在目录中创建新的 Git 仓库:下面在G:/git2/test1目录创建: 创建完成会有 ...
- CentOS7搭建Git服务器
CentOS7搭建Git服务器 文章目录 CentOS7搭建Git服务器 前言 搭建步骤 参考链接 前言 现有一台操作系统为CentOS 7的服务器,要将其作为代码库服务器使用,要求使用Git进行代码 ...
- Windows 使用 Gogs 搭建 Git 服务器
随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在windows搭建Git服务器,主要是因界面好看,管理更方便一些. ...
- centos 搭建git服务器
首先服务器需安装git 参考链接:https://www.cnblogs.com/-mrl/p/11045998.html 搭建git服务器 1.新建git仓库主目录,可以选择创建在/data目录下. ...
最新文章
- SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了?
- C语言作用域、链接属性和存储类型
- .Net程序员学用Oracle系列(10):系统函数(中)
- yolt 卫星图像进行快速目标识别的新方法
- oracle 27140,ORA-27140 ORA-27300 ORA-27301
- 过程的首要目的是好的结果
- Post方式之百度翻译的爬取
- C语言高级编程:char、signed char 和 unsigned char的使用区别
- 食饵捕食者模matlab,几类食饵-捕食者模型的定性分析和数值模拟
- vCenter Server Appliance(VCSA )6.7部署指南
- cocos2d-2.0-x-2.0.3 批处理文件create-android-project.bat 创建工程缺失lib解决方法
- word2vec需要去标点吗_word2vec训练词向量前期处理-中文分词等
- (转)量化投资大师采访摘录-詹姆斯·西蒙斯 James Simons
- eclipse --->svn插件安装
- linux基础ppt下载,《Linux基础》PPT课件.ppt
- CAD删除全部文字(网页版)
- Hadoop2.7.2 分布式集群搭建(CentOS 7)
- 盘点世界顶级五大黑客:个个都是神
- 【AEC】【拍乐云Pano 】回声消除(AEC)怎么理解?
- 医疗管理系统软件 linux系统,MyPatients 4.0.2 发布,医疗信息管理系统