adduser--system--shell/bin/bash--groupgit
//创建专用账号git,所有用户都用此账号访问git库正在添加系统用户"git"(UID120)...
正在添加新组"git"(GID126)...
正在将新用户"git"(UID120)添加到组"git"...
创建主目录"/home/git"...
第二步:sudopasswdgit
输入新的UNIX密码:
重新输入新的UNIX密码:
passwd:已成功更新密码
exit//退出root用户
第三步:进入git用户
sugit
密码:
第四步:创建
$mkdir-p/home/git/bin/gitolite/share/gitolite/conf//home/git/bin/gitolite/share/gitolite/hooks/
第五步:下载gitolite$gitclonegit://github.com/ossxp-com/gitolite.git
InitializedemptyGitrepositoryin/home/git/gitolite/.git/
remote:Countingobjects:6194,done.
remote:Compressingobjects:100%(1942/1942),done.
remote:Total6194(delta4324),reused6010(delta4186)
Receivingobjects:100%(6194/6194),1.42MiB|281KiB/s,done.
Resolvingdeltas:100%(4324/4324),done.
第六步:采用源代码方式安装gitolite
到gitolite源码所在位置,上面clone下来的目录/gitolite/src/执行下面的命令
cdgitolite/src$./gl-system-install/home/git/bin/gitolite/home/git/bin/gitolite/share/gitolite/conf//home/git/bin/gitolite/share/gitolite/hooks/*****WARNING*****
gl-setupisnotinyour$PATH.
Sincegl-setupMUSTberunfromthePATH(andnotassrc/gl-setupor
such),youmustfixthisbeforerunninggl-setup.Justadd
PATH=/home/git/bin/gitolite:$PATH
totheendofyourbashrcorsimilarfile.Youcanevensimplydothat
manuallyeachtimeyouloginandwanttorunagitolitecommand.
第七步:用gitolite创建仓库编辑/home/git/bin/gitolite/gl-setup
vim/home/git/bin/gitolite/gl-setup
把GL_PACKAGE_CONF变量改成上面安装gitolite的配置目录,如:
GL_PACKAGE_CONF=/home/git/bin/gitolite/share/gitolite/conf/
//否则会打开一个空的~/.gitolite.rc,就不知道该如何往里写配置信息了//因为gl-system-install有问题,所以安装以后还要手工改安装目录中的这个文件gl-setup,
第八步:加入系统的环境变量echo"PATH=/home/git/bin/gitolite:$PATH">>~/.bashrc
source~/.bashrc
//每次修改.bashrc后,使用source~/.bashrc是修改立即生效
第九步:产生管理员的密钥在用户下
例如:我要用aa账户:
在aa账户的根目录下执行:ssh-keygen
就会在根目录下产生.ssh目录下面有:id_rsaid_rsa.pub
将id_rsa.pub拷贝到git用户的的根目录下:
第十步:在git用户下:
将id_rsa.pub命名为aa.pub
mvid_rsa.pubaa.pub
第十一步:在home/git/bin/gitolite/
$./gl-setup~/aa.pub
//这里提供的公钥是作为管理员的
--编辑自动打开的.gitolite.rc文件:---一定要修改$GL_PACKAGE_HOOKS,改成gl-system-install指定的hook目录即/home/git/bin/gitolite/share/gitolite/hooks--.gitolite.rc编辑完成后保存退出,继续自动执行:
creatinggitolite-admin...
InitializedemptyGitrepositoryin/home/git/repositories/gitolite-admin.git/
creatingtesting...
InitializedemptyGitrepositoryin/home/git/repositories/testing.git/
[master(root-commit)07c5b91]gl-setup../../deovo.pub
2fileschanged,26insertions(+),0deletions(-)
createmode100644conf/gitolite.conf
createmode100644keydir/deovo.pub
现在就可以在aa用户下clone一份gitolite-admin仓库来管理代码和用户
InitializedemptyGitrepositoryin/home/deovo/share/gitolite-admin/.git/
remote:Countingobjects:6,done.
remote:Compressingobjects:100%(4/4),done.
remote:Total6(delta0),reused0(delta0)
Receivingobjects:100%(6/6),done.
InitializedemptyGitrepositoryin/home/deovo/share/testing/.git/
warning:Youappeartohaveclonedanemptyrepository.
//这是个空的代码仓库包
cdtesting/
viaa.txt
//输入一些内容保存退出
gitstatus
#Onbranchmaster
#
#Initialcommit
#Untrackedfiles:
#(use"gitadd
#aa.txt
nothingaddedtocommitbutuntrackedfilespresent(use"gitadd"totrack)
gitadd-A.
#Changestobecommitted:
#(use"gitrm--cached
#newfile:aa.txt
gitcommit-m"test1"
[master(root-commit)74e0d36]test1
1fileschanged,1insertions(+),0deletions(-)
createmode100644aa.txt
gitpushorigin//第一次需要用gitpushoriginmaster
Countingobjects:3,done.
Deltacompressionusingupto16threads.
Compressingobjects:100%(2/2),done.
Writingobjects:100%(3/3),375bytes,done.
Total3(delta0),reused0(delta0)
remote:***hooks.mailinglistisnotsetsonoemailwillbesent
remote:***forrefs/heads/masterupdate0000000000000000000000000000000000000000->74e0d366935e1289764cf780c486bdbfc1966f98