CentOS下搭建Git服务器Gitosis
$ yum install python python-setuptools $ git clone git://github.com/res0nat0r/gitosis.git $ cd gitosis $ python setup.py install
$ ssh-keygen -t rsa #不需要密码,一路回车就行(在本地操作) $ scp ~/.ssh/id_rsa.pub root@xxx:/tmp/ # 上传你的ssh public key到服务器
$ adduser git # 新增一个git用户(先添加用户组 groupadd git) $ su git # 切换倒git用户下 $ gitosis-init < /tmp/id_rsa.pub # id_rsa.pub是刚刚传过来的,注意放在/tmp目录主要是因为此目录权限所有人都有定权限的 $ rm /tmp/id_rsa.pub # id_rsa.pub已经无用,可删除.
$ git clone git@xxx:gitosis-admin.git # 切换到root用户并在本地执行,获取gitosis管理项目,将会产生一个gitosis-admin的目录,里面有配置文件gitosis.conf和一个 keydir 的目录,keydir目录主要存放git用户名 $ vi gitosis-admin/gitosis.conf # 编辑gitosis-admin配置文件
如果无法git clone的话,可以使用git clone git@xxx:/home/git/repositories/gitosis-admin.git
# 在gitosis.conf底部增加 [group 组名] writable = 项目名 members = 用户 # 这里的用户名字 要和 keydir下的文件名字相一致 # VI下按ZZ(大写)两次会执行自动保存并退出,完成后执行 $ cd gitosis-admin $ git add . $ git commit -a -m “xxx xx” # 要记住的是,如果每次添加新文件必须执行git add .,或者git add filename,如果没有新加文件,只是进行修改的话就可以执行此句。 # 修改了文件以后一定要PUSH到服务器,否则不会生效。 $ git push
[group project1] # 组名称 writable = project1 # 项目名称 members = xxx # 用户名xxx一定要与客户端使用的用户名完全一样,否则无权限操作
$ git commit -a -m “添加新项目project1,新项目的目录是project1,该项目的成员是xxx“ # “”里的内容自定 $ git push
$ mkdir /home/用户/project1 $ cd /home/用户/project1 $ git init $ git add . # 新增文件 留意后面有一个点 $ git commit -a -m “初始化项目project1″
$ git remote add origin git@xxx:project1.git # xxx为服务器地址 $ git push origin master
$ git push git@xxx:project1.git master
$ touch a.txt $ git add a.txt $ git commit -a -m 'add a.txt' $ git push
------------------------------------------------------------------------------------------------ 如果在git clone的时候遇到“
error: cannot run ssh: No such file or directory - cygwin git
”错误,则表示本机没有安装ssh命令。安装方法请参考:http://blog.haohtml.com/archives/13313 有时候我们要更换电脑来重新开发项目。这个时候,只需要将id_rsa私钥放在home目录里的.ssh目录里就可以了。(有时候一个人开发多个项目,这时候可能会提示id_rsa文件已经存在。不太清楚这里如何解决???) 续篇:git下添加新项目及用户
====================================================
三、常见问题
首先确定 /home/git/repositories/gitosis-admin.git/hooks/post-update 为可执行即属性为 0755
1. git操作需要输入密码
- 原因
- 公密未找到
- 解决
- 上传id_rsa.pub到keydir并改为'gitosis帐号.pub'形式,如miao.pub。扩展名.pub不可省略
2. ERROR:gitosis.serve.main:Repository read access denied
- 原因
- gitosis.conf中的members与keydir中的用户名不一致,如gitosis中的members = foo@bar,但keydir中的公密名却叫foo.pub
- 解决
- 使keydir的名称与gitosis中members所指的名称一致。 改为members = foo 或 公密名称改为foo@bar.pub
3. 相关链接
http://blog.csdn.net/wangyuefenga/article/details/7460104 相关文档: http://www.cnblogs.com/nasa/archive/2012/05/31/2528901.html http://www.jiangmiao.org/blog/1600.html
相关文章
- 在 CentOS 装 Git
- 在CentOS 5上安装Git教程
- git中的Reversing Pushed Changes
- SSH+Git Server on Windows – 在Windows下搭建Git服务器(教程)
- “remote:error:refusing to update checked out branch:refs/heads/master”的解决办法
转载于:https://www.cnblogs.com/ahauzyy/archive/2013/04/08/3043384.html
CentOS下搭建Git服务器Gitosis相关推荐
- centos7 下搭建git服务器
总的来说,搭建git和svn形式差不多 1.首先要在服务器安装git环境,创建用户密码和仓库等 2.然后个人主机(基本是window)安装git客户端 3.将个人主机客户端的秘钥写到git服务器的一个 ...
- CentOs上搭建git服务器
CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...
- git进入项目目录 windows_Windows下搭建Git服务器
Windows平台下搭建Git服务器的图文详解及教程 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不 ...
- Windows平台下搭建Git服务器
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...
- WindowsXP下搭建GIT服务器
2019独角兽企业重金招聘Python工程师标准>>> WindowsXP下搭建GIT服务器 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP ...
- centos下搭建dhcp服务器
centos下搭建dhcp服务器 一.软件环境 CentOS release 6.5 dhcp-4.1.1-51.P1.el6.centos.x86_64 dhcp-common-4.1.1-51.P ...
- Windows平台下搭建Git服务器的图文教程
Windows平台下搭建Git服务器的图文教程 来源:互联网 作者:佚名 时间:08-27 11:42:10 [大 中 小] Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SS ...
- kali系统搭建本地服务器,kali linux 下搭建git服务器
参考:http://www.cnblogs.com/dee0912/p/5815267.html https://www.liaoxuefeng.com/wiki/001373951630592960 ...
- CentOS 下搭建svn服务器
CentOS 下搭建svn服务器 安装SVN yum 安装 创建 svn 目录 svn 的目录结构 conf 中的设置[重点] 设置 authz 设置 passwd 设置 svnserve.conf ...
最新文章
- 如何批量文件格式转化
- bzoj1066 蜥蜴 (dinic)
- [Linux].netrc或者_netrc使用可以
- http协议网络编程
- [mybatis]Mapper XML Files_获取自增主键的值
- [NOIP]数字三角形
- Python精确指南——第四章-部署和技巧
- LGBM使用贝叶斯调参
- div内容过长自动省略号
- Spring boot 连接Redis实现HMSET操作
- 获取当前周和前一周周一和周天,下一周周一和周天
- 帝国cms模板中php,帝国cms模板中使用PHP生成随机字符的方法
- 20200813每日一句
- GO语言实战之函数与方法
- 智鼎测评--行测相关
- 教学系列CentOS安装和配置无线网卡
- 14个同陌路人匿名聊天在线工具排除你的寂寞和无聊
- PostgreSQL日期加减
- 基于GoogleEarth等高分辨率影像的地物景观提取精度评价
- UIpath发送邮件--outlook和smtp----企业级
热门文章
- chart.js 饼图显示百分比_Excel制作华夫饼图,其实很简单
- 上一家单位离职的原因_面试官:你为什么从上一家公司离职?小伙更换答案后,立马被录取...
- qt客户端打包_悬赏问答 - QT 类似QQ的 服务器与客户端程序 程序打包+数据库问题...
- 【layui】【laydate】设置可以选择相同的年份范围
- php抛出和捕获异常,关于php:捕获和重新抛出异常的最佳实践是什么?
- MVVM后台ViewModel添加DataGrid表头
- win创建linux目录,Windows与Linux上的文件创建时间
- mac安装和卸载mysql_mysql的安装与卸载
- aes解密算法 java_AES算法实现Java和JS互通加解密
- vs在linux下的环境搭建,linux下vscode环境配置