用gitolite搭建git server
在Ubuntu上测试安装一下git server,为后面项目的代码管理做准备。记录流水账如下, 中间关于git 命令的使用说明不做过多解释,需要了解的请google或者直接git help:
我用到了三个用户:eric,root,git
eric是ubuntu的登陆用户,root就不用说了,git是用来支持gitolite的system用户(下面会说到创建过程)。
我的server地址是192.168.137.100
1.安装ssh, 准备公钥文件:
安装和生成公钥的动作都是在eric用户中完成的。eric用户要作为gitolite的admin用户。
因为gitolite 通过ssh进行通讯和认证,所以需要先确保server端安装了ssh,我用了openssh:
sodu apt-get install openssh-server openssh-client
安装完成后就生成公钥文件, 以下是按照默认参数来生成的:
ssh-keygen -t rsa
生成后的文件路径在~/.ssh/下面,有id_rsa, id_rsa.pub
先到此为止,下面会详细说明一下。
2. 安装git client,并配置全局用户名和邮箱
sudo apt-get install git
git config --global user.name 'eric'
git config --global user.email 'youremail@126.com'
3. 安装gitolite
1)创建专门支持gitolite的用户
adduser \
--system \
--shell /bin/bash \
--group \
--home-dir /home/git git
git用户创建完成之后,可以尝试配置一下ssh登陆,具体做法如下:(因为不常用linux,在理解ssh方面还是有点吃力,但总算解决了问题,也记住了)
关于ssh的原理,推荐这篇很全面的文章。这篇文章里面有些演示命令的用户好像有问题,各位看的时候可以多查其他文档。
我们已经创建了eric用户的ssh public key,我们把id_rsa.pub文件放到/home/git/.ssh/,然后生成authorized_keys文件:
cat id_rsa.pub >> authorized_keys
转到eric用户,运行命令:
ssh git@192.168.137.100
正常情况是,出来connect提示,然后输入yes,连通。
如果有什么问题,请google,因为我碰到了host key检验不成功的提示,这个问题可能是/dev/tty的权限不够,或者是known_hosts里面有缓存key造成的,但也有可能是因为在弹出connect 提示的时候,你直接回车通过了,默认值是no。(这个真是silly)
连接通过之后,那一切就应进入下一步的安装了。
2) 在git用户下安装gitolite server, 推荐官网doc
这里就直接罗列命令流水了,我的当前路径是git用户的根路径:
git clone https://github.com/sitaramc/gitolite.git
mkdir $HOME/bin
gitolite/install -ln
cp .ssh/id_rsa.pub .ssh/eric.pub
bin/gitolite setup -pk /home/git/.ssh/eric.pub
顺利的话,到这一步应该是有个warnning的,就是说明eric已经是一个可以通过shell登陆的用户了。那应该怎么做呢?
rm -f .ssh/authorized_keys
bin/gitolite setup -pk /home/git/.ssh/eric.pub
现在转到eric用户:
vi .ssh/config
Host gitbox
User git
HostName 192.168.137.100
IdentityFile /home/eric/id_rsa
保存退出
然后就可以试着拉一下默认库了:
git clone gitbox:gitolite-admin.git
hope you can enjoy the rest of your journey.....
[Add]如何创建repository
2 steps on this topic
第一步:配置gitolite-admin
在上面搭建的环境中,我们已经可以在eric用户中,pull出来了gitolite-admin代码。
接下来就要需要进入其源码路径中的conf,然后编辑gitolite-admin.conf,加入你的repos如下:
repo <yourreponame>
RW+ = <username>
这里的username就是在keydir里面的对应的用户。
都保存好之后,千万不要忘记把修改push到server,而且只有把这些修改push到server之后才会初始化新加的repository。
第二步:配置本地的project
进入你的project路径, 执行如下的命令:
git init
git add .
git commit -m "init repo"
希望经过上面的配置,你已经完成了git config
接下来就是要设置git server的相关信息了:
git remote add origin gitbox:<yourreponame>
git push origin master:refs/heads/master #如果这句不知道是什么意思,来一个链接供参考http://stackoverflow.com/questions/7506832/git-push-origin-masterrefs-heads-master-what-does-this-do
后面就自己高兴的搞去吧。。
用gitolite搭建git server的更多相关文章
- # 基于Gitolite搭建Git Server - 支持SSH&HTTP
Git, 一个分布式的版本管理工具,我认为其革命性的点:在于改变了用户协作的方式,使得协作更简单. 下面讲述 使用一个开源软件 Gitolite搭建一个Git Sever, 并给了一个推荐的团队协助方 ...
- Ubuntu server 搭建Git server
Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每个客户端用户的本地都是一个版本管理控制器. Ubuntu server 版本为12.04 搭建步骤如下: ...
- Ubuntu server 搭建Git server【转】
转自:http://www.cnblogs.com/candle806/p/4064610.html Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每个客 ...
- 搭建Git Server
windows上如何搭建Git Server Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用.那么私有 ...
- 在windows上搭建git server Gitblit
在Windows上搭建Git Server 第1步:下载Java并安装Java.我这里下载的是jdk1.7.0_79 第2步:配置Java环境变量 右键” 计算机” => ”属性” => ...
- 使用gitolite搭建Git服务器
使用gitolite搭建Git服务器 运行环境 Ubuntu18.04 gitolite 搭建过程 安装好Ubuntu18.04系统 更新系统 sudo apt update sudo apt upg ...
- 在 mac os 上搭建 git server
前言:之前学习了如何使用 git 后,一直想搭建一个本机搭建一个 git server 的,一开始不知道走了弯路用了 gitosis,折腾了我好几天都没配置好.昨晚查资料发现 gitosis 早就过时 ...
- windows上如何搭建Git Server
Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用.那么私有项目,如何用Git进行代码版本控制呢?我们可以自己 ...
- [CentOS] 使用gitolite搭建git服务端
1. 创建用户 #创建gitadmin用户 useradd gitadmin #设置gitadmin密码 passwd gitadmin #创建git用户 useradd git #设置git密码 p ...
随机推荐
- Buy the souvenirs---hdu2126(01背包输出方案数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2126 有n个物品每个物品的价格是v[i],现在有m元钱问最多买多少种物品,并求出有多少种选择方法: 如 ...
- Spring-BeanFactory容器
Spring的BeanFactory容器 这是Spring中最简单地容器,它主要的功能是为依赖注入(DI)提供支持.这个容器接口在org.springframework.beans.factory.B ...
- Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch
继PHP.Ruby.Python和Perl之后,Elasticsearch最近发布了Elasticsearch.js,Elasticsearch的JavaScript客户端库.可以在Node.js和浏 ...
- 两台Linux系统之间传输文件
用CRT分别连上两台需要传输文件的linux系统服务器,并检查防火墙是否关闭. 查看防火墙状态: /etc/init.d/iptables status 若防火墙启用,暂时关闭防火墙: /etc/in ...
- TensorFlow学习笔记(三)-- feed_dict 使用
个人理解:就是TF的一种输入语法. 跟C语言的scanf(),C++的 cin>> 意思差不多,只是长相奇怪了点而已. 做完下面几个例子,基本也就适应了. 首先占位符申请空间:使用的时候, ...
- POJ - 3308 Paratroopers (最小点权覆盖)
题意:N*M个格点,K个位置会有敌人.每行每列都有一门炮,能打掉这一行(列)上所有的敌人.每门炮都有其使用价值.总花费是所有使用炮的权值的乘积.求最小的总花费. 若每门炮的权值都是1,就是求最小点覆盖 ...
- 论文笔记:多标签学习综述(A review on multi-label learning algorithms)
2014 TKDE(IEEE Transactions on Knowledge and Data Engineering) 张敏灵,周志华 简单介绍 传统监督学习主要是单标签学习,而现实生活中目标样 ...
- Ubuntu16.04中查看硬盘的型号和读取速度
最近在测试FTP服务器,上传和下载的速度与很多因数有关,其中,硬盘的读取速度就是其中不同的区别点,我同时用了三台不用的服务器架设FTP服务,一台是出来ftp服务外还含平台其他管理软件,一台是全新的系统 ...
- 搭建Firekylin博客
搭建步骤 1).安装 Node.js curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - yum - ...
- Datatable To List<Entity>
public static DataTable ToDataTable<T>(this IEnumerable<T> varlist) { DataTable dtReturn ...