如何建立环境管理体系在Linux环境下建立Git Server并设置用户

如何在你自己的服务器搭建类似github的服务,git部署站点 - xiaoshenge - ITeye博客
博客分类:
前言:如果你使用git管理代码(不希望公开的),但是没有钱买github的服务,你可以再自己的服务器上搭建git服务器(这里只写支持ssh协议的,与github差的太远了,希望不要怪我这个标题党)。同时如果你用git部署项目的话,只需要一条pull命令就可以把测试机上的代码更新到线上(之前我还傻傻的登录线上机子然后pull,其实只需要在本地push一下就好)。
参考资料:《git权威指南》
-.搭建支持ssh协议的git服务器
1:linux服务器上安装好git(可以参考:)
2:本地安装git软件(参考: 里面的set up git)
3:给支持git操作的用户添加认证信息,在用户家目录(~/home)新建.ssh文件夹:将本地(就你开发机子上的~/.ssh/id_rsa.pub)添加到服务器上~/.ssh/authorized_keys
4:在linux服务器上创建项目的共享版本库(git init --bare --git update-server-info)
5:然后你就可以使用了,操作跟你操作github一样( git clone 添加了认证信息的用户名@服务器域名(或者ip):/项目路径)
二.git部署你的项目
1:.在你部署的机子上通过git clone把版本库中的代码克隆一份
2:设置部署机上的项目git配置
git config receive.denyCurrentBranch ignore
git config --bool receive.denyNonFastForwards false
cd .git/hooks
wget http://utsl.gen.nz/git/post-update
chmod +x post-update
3:设置你本地版本库
[remote "web"]
url = your-ssh-username@your-host:/var/www/yoursite/
4:然后你就可以
git psuh origin master(更新到版本库) git push web(更新到线上)
如果你有这个需求,同时我这篇文章误导你了(没看明白我写啥,可以email我)。
--------------------------------华丽的分界线(以下部分是之前的自己的备忘录)---------------------------------------------
我们知道git支持很多协议,这里想说的是本地和ssh。本地就是你的代码库分别在两个盘:在d盘的test目录生成不包含工作区的版本库d:/test/
git init --bare然后在e盘就可以用了e: git clone d:/test...e:/test git push oringin master在网络中就是通过ssh连接到你的服务器:在你的服务器建立git用户:$ sudo adduser git$ su git$ cd$ mkdir .ssh然后你自己的本地的~/.ssh/id_rsa.pub添加到服务器上~/.ssh/authorized_keys然后用git用户创建版本库cd /var/www/gitcode/testgit init --bare --sharegit update-server-info然后你本地就可以使用了$ git clone git@youserver:/var/www/gitcode/test....$ git push origin master 然后你就可以尽情使用git了。最后再次感谢github管理员在大过年的帮我解决问题(昨晚平安夜发的问题)。还有这个,你可以学习很多git知识。git部署站点:上面说到搭建git没有工作区间的版本库,当我们需要部署该代码时候。(比如web服务器也在git版本库管理机子上)cd /var/www/testgit clone /var/www/gitcode/testweb服务器就省略了...也许我们是本地开发,我们本地有个版本,修改完了git push origin master然后在登陆到web服务器下面git pull,才实现代码一致,我想可能有简单办法,自己对git不熟悉,刚好看到这篇文章。在web部署的库中:git config receive.denyCurrentBranch ignoregit config --bool receive.denyNonFastForwards false给web下面的代码加上git用户可写的权限,
cd .git/hooks
wget http://utsl.gen.nz/git/post-update
chmod +x post-update
在本地库加上[remote "webdev"]
url = your-ssh-username@your-host:/var/www/yoursite/然后你就可以git psuh origin mastergit push webdev省去了在登陆web服务器pull的步骤。 这么强大的git了这是值得学习。
[注]:大部分的git push失败都是有权限导致的,当push失败(除冲突除外),先去检查权限问题。
浏览 22569
好文章,建议更详细一点,弄个完整的指南就更好了恩,清明我搞一个完整的指南吧,这篇文章一开始只是我自己的备忘录。
xiaoshenge
浏览: 119729 次
来自: 十堰
楼主能搞个java版本的吗?你的php看不懂
jayson1987 写道为啥要这么复杂呢。拷贝深层的文件同时 ...
为啥要这么复杂呢。拷贝深层的文件同时保持目录结构直接使用cp搭建git服务器[linux]
搭建git服务器的过程非常的痛苦,遇到了不少麻烦【如果当时对Linux系统有着比较熟悉的话,那会少走很多弯路】
&网上资料不够详细
&遇到的Error,不易查找
&搭建git服务器的时候,你先得了解下Linux下有关权限方面的知识:【~$: su git
& --------------切换git用户】
Problem a:
&开始使用的管理工具是gitosis【应该使用gitolite &
(gitosis在2009年就停止更新了)】,当时遇到的问题有:
git&clone&(没有加上全路径)会有错误&(如上图)
当我加上仓库路径时&就能克隆下来了
git&clone&&
@当时是重装了ubuntu才解决的!【如果是gitolite,那么在服务器的/home/git/.gitolite.rc下设置$REPO_BASE="repositories"(也是默认路径);可以解决这个问题】
Problem b:
git clone&&时要输入密码才能克隆:【且在/home/git/.authorized_keys已经配置好了密钥】
如果你也遇到了这个问题那么请你先检查git、.ssh、authorized_keys文件所属者(root
OR git?【$ ll】查看文件状态以及读写权限 【这几个文件所属者应是git用户】)
搭建git服务器详细步骤:
1、安装Git和openssh:(Server端)
apt-get install git-core openssh-server
(如有更新失败可 &$ sudo apt-get
update【刷新文件索引】)
2、新建用户git,该用户作为所有代码仓库和用户权限的管理者:
useradd&&git
$ sudo passwd git
(设置git用户密码-----一直回车吧)
3、初始化服务器
$ git config
--global user.name “your name”
$ git config --global user.email
& & 3.1安装一下python的setup
& & $ sudo
apt-get install python-setuptools
3.2获取gitolite包。&两种方式&
$ sudo aptitude install
& & $ git clone
/sitaramc/gitolite.git
4、配置gitolite【Client端】
管理员设置【(在你拥有权限的目录下)生成密钥】
$ ssh-keygen &t rsa
& & 【一直回车就行】
然后将密钥拷贝至服务器
$ scp ~/.ssh/id_rsa.pub
git@192.168.XXX.XXX:/tmp/00_rsa.pub
【以名00_rsa.pub挂载到Server端的tmp下[建议命名得规范,有利于维护]】【可在服务器端cat /tmp/00_rsa.pub &&
/home/git/.ssh/authorized_keys&或者在管理员用户下配置(即6.1)】
回到Git服务器上。
$ sudo chmod a+r
/tmp/00_rsa.pub
执行Gitolite安装。
$ gl-setup
/tmp/00_rsa.pub【设置管理员用户】
Initialized empty Git repository in
/home/git/gitolite-admin.git/
Reinitialized existing Git repository in
/home/git/gitolite-admin.git/
Gitolite是通过一个git仓库来管理配置文件,仓库放在/home/git/repositories/gitolite-admin.git。
设置git仓库权限
$ sudo chown git:git
/home/git/repositories
$ sudo chmod 755
/home/git/repositories
$ sudo chmod 755
/home/git/repositories/gitolite-admin.git/hooks/post-update
5、&在服务器上新建测试项目仓库
在服务器上新建一个空的项目仓库可,叫“test”。
【/home/git/repositories/ $ git init --bare
test.git】
切换到git用户:
$ su & git
$ cd repositories
$ git init --bare
test只是一个空仓库,它是不能clone下来的。为了能做clone,必须先让管理员或有权限的人放一个初始化的版本到仓库中。所以,我们必须先修改一个gitolite-admin。
6. 管理gitolite的配置文件
Gitolite本身的配置也是通过git来实现的。在刚刚上传公钥的机器上,把gitolite-admin.git这个仓库clone下来,就可以以管理员的身份修改配置了。【注意刚才配置的密钥所属这才是管理员】
在客户端拥有权限的目录下新建一个文件夹:
$ git clone
git@192.168.XXX.XXX:gitolite-admin.git(或使用全路径)
注:访问git用户仓库的默认路径是/home/git/repositories/
$ cd gitolite-admin
该目录下的keydir目录是用来存放所有需要访问git服务器的用户的ssh公钥。各个用户按照前面提到的办法生成各自的ssh公钥文件后,把所有人的ssh公钥文件按名字重新命名一下,然后拷贝到keydir目录下,然后修改gitolite.conf文件【/home/hzxiao/mtest/gitolite-admin/conf】,做相应的配置:($
vim&gitolite.conf你将会看到如下信息.....排版有点乱)
repo&&&&gitolite-admin
& & 【和Server端的/home/git/repositories/gitolite-admin.git
&&&&&&&&RW+&&&&&=&&&hzxiao_41_rsa
& &【管理员】
repo&&&&testing
&【testing.git】在server端/repositories目录下git
init --brae project (得将工程添加至gitolite.conf)
&&&&&&&&RW+&&&&&=&&&@all
& &【(/home/hzxiao/mtest/gitolite-admin/keydir)中的用户密钥---------普通用户】
repo&&&&123test
&&&&&&&&RW+&&&&&=&&&@all
repo&&&&msm1
&&&&&&&&RW+&&&&&=&&&@all
repo&&&&pxa988-jb4.2-t7-beta3-sp6
&&&&&&&&RW+&&&&&=&&&@all
repo&&&&aurora
&&&&&&&&RW+&&&&&=&&&@all
这个配置文件表达了如下含有:gitolite-admin组成员hzxiao_41_rsa,对gitolite-admin仓库有读写权限;test组@all及/keydir密钥的所属者,该组对test仓库有读写权限。目前这些配置文件的修改只是在本地,必须推送到远程的git服务器上才能真正生效。【或者直接在服务器上配置即步骤4】
加入新文件、提交并push到Git服务器:
$ git add .
$ git commit &m “add test and
someusers”
$ git push origin
7、克隆服务器工程:
$ git clone
git@192.168.XXX.XXX:项目名.git &
& &【.git工程在服务器端的/repositories目录,想要克隆成功需要配置gitolite.conf,步骤6】
参考的博文有:
推荐git学习:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。3803人阅读
linux(17)
这两天沉迷php web服务器开发不能自拔,但是php和html、js之类的程序要写一点看一点效果,我是放到linux云主机上测试的,所以要在xshell上写代码,很麻烦。
于是想自己在云主机上搭建一个git远程仓库,这样我在windows端写代码,写好push一下就能在linux端同步更新,后来我发现我太天真了,因为linux端的git仓库不具备读写能力,里面的文件格式和我们上传上去的不一样,要想在linux端同步更新只能clone一下,然后手动pull更新,这样的话,还不如直接用github来管理。
虽然最终目的是失败的,但是搭建git服务这个目标是成功的,我花了一天的时间,历经千辛万苦终于把git服务器给搭好了!
下面放出全部流程:
1. 安装git
我用的是CentOS,所以直接用yum安装就好了,ubuntu系的用apt-get
shell命令: $yum install git
2. 增加一个git账户
为了管理的方便,在linux下面增添一个 &git& 账户。
shell命令: $adduser git
我为了方便,顺便把这个账户放到sudoers组里面了(教程随手找了一个来:&)
3.创建一个git远程仓库
此时进入/home/git(当然你可以自己另外指定用户文件夹)目录下面,创建一个叫做tmp.git的空git仓库
shell命令:&sudo git init --bare tmp.git&注意,仓库的名字后面要加上.git的后缀
此时远程仓库已经建好了,这个仓库不能直接提取文件,只能通过clone的方式从里面下载文件,我一开始不知道,以为直接可以拿来用
接下来要做的就是对ssh的配置
4.配置ssh密钥
我对原理不是很懂,简单来说就是客户端生成一个ssh公钥,然后把这个ssh公钥加到服务器端的一个文件里面,然后客户端就可以远程连接到服务器。
因为这样就可以通过ssh远程登录服务器的shell了,这样肯定不安全,所以最好将git这个账号设置成不允许远程操控,我为了简便起见就没搞,再说我本来就是要远程登录linux的,这样做不是搬起石头砸了自己的脚。。。?
一般说来,系统是自动安装好ssh相关软件的,如果没有自行安装一下:$yum install ssh , & &然后开启一下ssh服务:$service sshd restart
废话不多说,先在git账号的目录下面找找看有没有 .ssh文件,没有的话建立一个新建一个 .ssh文件:$mkdir .ssh
然后进入.ssh文件夹,在这个文件夹下面新建一个文件: touch&authorized_keys
然后要做的是把客户端生成的ssh密钥复制粘贴到这个文件里面。
服务器端也是要生成密钥的,所以要执行:#ssh-keygen -t rsa生成两个文件(id.rsa和id.rsa.pub)
我们随便找到一个linux系统(别问我我为什么有两个云主机 ),然后执行这段命令:ssh-keygen -t rsa,如果你是一路回车确定下去的话,应该能看到下面这样的画面:
进入.ssh文件夹,执行:
然后用cat命令查看id_rsa.pub文件:
$cat&id_rsa.pub
然后将打印出来的这段密钥复制一下,就是这段 &ssh-rsa AAAAB3NzaC1yc2EAAAADAQA……oXZCu4jWwP git@iZ281a8bg82Z&,保存好这段文本。
然后回到服务器端的git账号下的.ssh文件夹,打开之前新建好的authorized_keys文件夹,将刚才复制来的文本粘贴进去,一行一个密钥,一个密钥对应一个客户端
5.客户端clone测试一下
我们进入客户端主机(我用的是另一台云主机,也是linux系统的,如果是windows的话,需要下载git for windows版本的)。
在用户目录下新建一个test文件夹用来存放等下要clone的仓库:
进入test文件夹,执行:$git clone git@serveraddress:tmp.git
这个时候我突然发现居然要输入服务器端git账户的登入密码,不对啊,这和我以前用github的画风不一样啊,于是我开始四处找教程,终于找到了原因:ssh配置文件的问题
如果不需要输入密码就能成功clone的童鞋可以跳过下面这段。
我们先登入服务器端的root权限账户,编辑/etc/ssh/sshd_config文件,这个文件是ssh服务器的配置文件,我们要修改的是这几行:
找到上面这张图片中的那几段黄色语句,将其注释取消,再将属性修改成上面那样的。
接下来千万别忘记重新启动一下ssh服务:$service sshd restart
然后我再到客户端,执行clone命令,这次就不用输入密码了。
这一路下来就算是大功告成了,只要想新增客户端,只要生成ssh密钥,然后把密钥复制到服务器端下的.ssh/authorized_keys文件下,客户端就可以连接上git远程仓库了。
这个博客是给有一定基础linux基础和github使用经验的人看的。。。如果对文章感到疑惑,还是多多百度吧。。。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10170次
排名:千里之外
原创:38篇
(1)(1)(4)(1)(6)(3)(7)(10)(3)(2)(2)Gitolite轻松部署/管理git server-配置管理-火龙果软件工程
每天15篇文章
不仅获得谋生技能
更可以追随信仰
Gitolite轻松部署/管理git server
火龙果软件&&& 发布于&
对于今天越来越受欢迎的Git,相信做开发的朋友都基本有所耳闻。它最大的便利就是分布式的开发库,让使用git作为源码管理库的开发者可以在本地提交代码的修改而不用提交到远程的库,同时需要和团队协作、同步代码时,也仅仅是多一条指令而已。如果你想了解git的全貌,可以看《Pro
git》,他有中文版,貌似没有维护到最近的,需要的可以google it。
Git 使用者的日常流程:
1、从git server远程库上clone一个副本到本地库(git clone),
2、本地开发,然后本地提交修改(git add 改动的文件;git commit
提交);无限循环这个周期。
3、第3、4步是和服务器同步。先把远程库的改动抓下来,本地解决版本合并有问题的地方(git
4、然后把合并后的本地代码库提交到远程库(git push);按你的团队计划,也许每天一次。
5、另外,user除了与服务器同步外,也可以与其他协作者直接同步;如上图左和中间的头像标示。
以下介绍的,是使用gitolite管理git server,进行源代码的团队协作。本文的读者最好有linux的经验。
Gitolite介绍
其实,每一个Git库只需要Cbare -shared就可以简单实现类似共享代码库服务器的功能,在git的世界,代码都是自由share的,每个人扮演的角色,和linux系统赋予这个用户的权限有关。但如果采用这种SSH
authorized_keys的方式,直接系统通过shell进行 git clone的方法,会缺少了一项很必须的权限管理――每个用户对某个repository中所有项目均拥有完整的读写权限(可通过linux系统的权限设定,但依然麻烦),如果在一些大项目,涉及到多种角色权限,并要指定访问路径时,直接管理authorized_keys的方式,就显得力不从心,试想一下如果你要管理超过1000号人的authorized_keys?
Gitolite,是一套用来管理 authorized_keys 文件的,为git
server实现了细粒度的访问控制的perl脚本。它的官方网址是: /sitaramc/gitolite,起先,gitolite受到gitosis的影响而开发,其命名就是gitosis+lite的意思,轻量版的gitosis,目标是打造比gitosis更人性化和更稳定的软件套件。如今,gitolite不仅早已超过它的前辈gitosis,还占据了众多大型开源社区的一席之地,由它为git
server管理着代码仓库的ACL,其中包括Fedora社区(管理着超10000个仓库)、KDE社区、Gentoo社区、MeeGo社区以及Kernel.org。Gitolite进行用户管理和访问控制设定的方法,是通过管理一个指定的
Git 仓库来实现。你只需要在这个指定的仓库内做好相应的设定,然后推送到服务器上,Gitolite就会随之改变运行策略。
Gitolite安装步骤
gitolite的安装其实非常简单,官方网址上给出的quick install仅仅4步,需要的可以看这里。另外,gitolite也有多种安装模式,例如
1、使用安装包自动安装; apt-get install / yum install
2、使用root帐号手动安装为全局应用,这样每一个服务器上的用户都可以开设代码仓库;
3、或手动在指定的普通用户帐号下安装。
以下的安装使用上述第三种方法,这样会最小程度“污染”你的server运行环境,并且能随时更新到最新版本的gitolite。
1、假设我们现在有两台机器,server and client;
2、我们指定管理git server的管理员叫sunny;
3、并有一个普通的client user帐号jacob
下面的步骤,只是step-by-step的how-to,没有太多的why,如果要详细研究,请看gitolite的官方文档,或蒋鑫的编著《git权威指南》。
另外,gitolite的安装,会依赖git,如果你的服务器上还没安装git套件,请先自行安装。
deb系: apt-get install git-core 或 apt-get install
for RH系: yum install git
1.先登录到服务器,让root新建一个gituser帐号,因为我们希望源代码仓库放在服务器的普通帐号下:
root@server# adduser --system --shell
/bin/bash --group gituser
2.给用户gituser设定密码,在SSH公钥建立后可以把这个密码禁掉
root@server# passwd gituser
3.管理员在本地创建一个ssh key pair对
sunny@client$ ssh-keygen
如果你不想影响本机现有的一些key pair,可用-f参数
sunny@client$ ssh-keygen -f sunny_key
4.推送管理员的公钥到remote server
sunny@client$ ssh-copy-id -i ~/.ssh/id_rsa.pub
gituser@server
如果是用带有-f参数生成的,注意这里要指向正确的文件
5.以gituser用户身份登录到服务器上
sunny@client$ ssh gituser@server
gituser@server$ mv .ssh/authorized_keys sunny.pub
7.下载源码安装,或自动安装;推荐源码安装,也就三个命令;如install时候提示git版本too
old, 可以下载旧版本的gitolite,例如2.1的,或者1.5.9之后的,如需要下载旧版本,点击这里
gituser@server$ git clone git:///sitaramc/gitolite #下载源码gituser@server$ gitolite/src/gl-system-install
#如果提示git too old,请下载旧版本的gitolitegituser@server$ gl-setup -q ~/sunny.pub
执行gl-setup时几点注意:
gl-setup要放到$PATH,请确定~/bin已放在PATH变量,如没有,请编辑~/.bashrc,最后面添加
PATH=~/bin:$PATH
并执行以下命令生效:
sh ~/.bashrc
旧版本的gl-setup,没有-q参数,如使用旧版本gitolite(例如1.5.9),直接赋参数即可
gituser@server$ gl-setup ~/sunny.pub
8.直接package管理工具安装 (如不需要的请跳过)
gituser@server$ sudo apt-get install gitolite或gituser@server$ sudo yum install gitolite
如果不能sudo,请登录到root帐号再执行安装
Gitolite的管理及权限设定
gitolite的管理,包括用户管理和代码库管理,都是通过操作一个指定名称的库来实现:gitolite-admin仓库。因此gitolite的管理员sunny需要先把这个库抓到本地,进行必要的配置后,再push到remote
服务器,让设定生效:
抓取gitolite-admin仓库到本地
sunny@client$ git clone gituser@server:gitolite-adminsunny@client$ cd gitolite-admin
1. 新增用户
先要获取待加用户(jacob)的pubkey,如果不知道怎么获取,请让jacob参考上述第三步生成他自己的id_rsa.pub
sunny 把用户jacob的pubkey,放到gitolite-admin/keydir目录,并重命名为jacob.pub
... # 前提是sunny通过email、QQ、MSN等任意的方法,获取了jacob的pubkey并放到了keydir目录# 此例中,jacob给过来的是pubkey是id_rsa.pub,如果给来的是jacob.pub则跳过这步sunny@client:~/gitolite-admin/keydir$ mv id_rsa.pub jacob.pub
执行add, commmit, push进行推送,即可
sunny@client:~/gitolite-admin$ git add .sunny@client:~/gitolite-admin$ git commit -m &add jacob pubkey&sunny@client:~/gitolite-admin$ git push
此时jacob已增加到gitolite,但是,除了系统自带的testing库外,他操作不了其他的库
2. 新增并设定代码库
现在要在remote server新建一个代码仓proj,依然是对gitolite-admin进行配置
编辑gitolite-admin/conf/gitolite.conf,仿照以后的库的格式,添加:
repo proj_a
# 这里设定是新增库的名称
RW+ = sunny
# R是读权限,W是写权限,+是包括“强制更新一个分支,删除分支和更新一个Tag”的权限
RW = jacob
# 设定RW权限的人
执行add, commmit, push进行推送,即可
sunny@client:~/gitolite-admin$ git add.sunny@client:~/gitolite-admin$ git commit -m &add a new repo&sunny@client:~/gitolite-admin$ git push
gitolite.conf的格式其实有相当多的复杂配置(详情请看官方手册),一般来说,象以下这样的,已够几个人的开放型小团队使用,例如:
= sunny jacob
# @proj_a是分组命名,分组用@表示,可以在后面引用分组@proj_b
= sunny taylor jean
# 如果有多个用户,用空格隔开
@admins = sunny
@qa = elapse flora
@engineers = sunny jacob taylor jean
@staff = @admins @qa @engineers # 分组可以被引用
repo gitolite-admin # 这个是gitolite的管理仓库,sunny是指定可以对其进行操作的管理员
RW+ = sunny
repo proj_a
RW+ = @admins
RW = @proj_a elapse
repo proj_b
RW+ = sunny
RW = @engineers flora
R refs/tags/ = @qa # 这里设定的,是QA这个组,对refs/tags/开头的路径的文件只有读权限
repo testing
RW+ = @stall
3. 普通用户签出操作
例如jacob要把代码库checkout出来,本地修改,然后再和remote库的代码进行版本合并。这些操作是纯粹的git操作了,团队的日常开发流程,正是这样子开展。请参阅本文一开头的那副git工作流程图,以下是几种不同情况的用户签出。
把remote库抓取下来,然后才开始修改
jacob@client:~$ git clone gituser@server:proj_a
# 项目默认放到proj_a目录或jacob@client:~$ git clone gituser@server:proj_a my_proj_a
# 项目被下载到my_proj_a目录下
jacob本地已有一个现成的项目proj_a正在开发,并用git在管理着,现在想share到这个项目到proj_a
jacob@client:~$ cd proj_ajacob@client:~/proj_a$ git push --all gituser@myserver:proj_a
# 推送到remote server
如果希望在当前目录使用一个已有的库(即合并项目),那样比较复杂,要采取非常规方法,替换.git/config文件才行
4.删除用户
管理员在本地,删除了gitolite-admin/keydir目录下对应的用户pubkey,然后执行git
的rm操作,再 commit, push推送,即可
sunny@client:~/gitolite-admin$ rm -f keydir/jacob.pubsunny@client:~/gitolite-admin$ git rm keydir/jacob.pubsunny@client:~/gitolite-admin$ git commit -m &delete a user&sunny@client:~/gitolite-admin$ git push
5. 删除代码库
gitolite没有删除repo的代码,如要删除repo,管理员要分两步走:
本地编辑gitolite-admin/conf/gitolite.conf,删除相关的repo代码,然后add,
commit, push推送
sunny@client:~/gitolite-admin$ git add .sunny@client:~/gitolite-admin$ git commit -m &remove a repo&sunny@client:~/gitolite-admin$ git push
用gituser帐号或root帐号进入服务器,把gituser/repositories下相关的repo目录删除
root@server:/home/gituser/repositories$ rm -Rf proj_a.git
# 库对应proj_a的目录,带.git结尾
6. 修改代码库的名字
改名,也是分两步,和上面执行删除的顺序反过来,
先用gituser帐号或root帐号进入服务器,cd repositories,执行移动
root@server:/home/gituser/repositories$
mv proj_a.git proj_b.git
回到客户端,修改conf/gitolite.conf,把old-name的地方修改为new-name,然后add,
commit并push
7. 列出本人拥有权限的库
使用普通用户jacob的帐号尝试登录remote服务器即可,
jacob@client:ssh gituser@server
例如会返回:
hello jacob, the gitolite version here is 1.5.4-2+squeeze1~bpo50+1 (Debian)the gitolite config gives you the following access:
testingConnection to 192.168.0.101 closed.
上面列出的proj_a和testing,就是用户jacob所能操作的库,并都拥有R和W的权限。
如果你对ssh很熟悉的话,gitolite的安装与使用,那是问题不大的。若你对ssh和git两者都不十分了解,使用起来可能会不算顺利。本文是gitolite配置使用的step-by-step,对于配置文件gitolite.conf,以及gitolite所支持的强大权限管理、路径正则匹配、user命名空间、和gitweb整合、委托管理以及代码库镜像备份等等,都没有叙述。如果你需要这些进阶知识,推荐看官方的帮助文档,以及《gitolite构建git服务器一文》。
更多课程...&&&
更多咨询...&&&
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
|&京ICP备号&京公海网安备号

我要回帖

更多关于 px4开发环境的建立 的文章

 

随机推荐