您的位置:首页 > 运维架构 > Linux

在CentOS上安装Git

2012-06-17 21:37 363 查看
yum install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc autoconf make

openssl-devel perl-CPAN


wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz
tar xzvf git-latest.tar.gz

cd git-2012-06-17/ (查看解压出来的文件夹)

安装

autoconf

./configure --with-curl=/usr/local

make && make install

查看版本号,确实git是否安装成功

git --version

指定用户名和电子邮件地址

git config --global user.name “GIT Admin”

git config --global user.emal test@test.com

2.安装gitosis

yum install python python-setuptools

git clone git://github.com/res0nat0r/gitosis.git

cd gitosis

python setup.py install

3.在开发机器上生成公共密钥(用来初始化gitosis)

#不需要密码,一路回车就行(在本地操作)

ssh-keygen -t rsa

# 上传你的ssh public key到服务器

scp ~/.ssh/id_rsa.pubroot@xxx:/tmp/

4.初始化gitosis

# 新增一个git用户

adduser git

passwd git

# 切换倒git用户下

su - git

# id_rsa.pub是刚刚传过来的

gitosis-init </tmp/id_rsa.pub

# id_rsa.pub已经无用,可删除.

rm /tmp/id_rsa.pub

5.获取并配置gitosis-admin

# 在本地执行,获取gitosis管理项目

git clonegit@xxx:gitosis-admin.git

# 编辑gitosis-admin配置文件

vi gitosis-admin/gitosis.conf

在gitosis.conf底部增加

[group 组名]

writable = 项目名

members = 用户 # 这里的用户名字 要和 keydir下的文件名字相一致

# 要记住的是,每次添加新文件必须执行git

git commit -a -m “xxx xx” add .,或者gitadd filename,如果没有新加文件,只是修改的话就可以执行此句。

#修改了文件以后一定要PUSH到服务器,否则不会生效。

git push

新建项目

到此步就算完成gitosis的初始化了。接下来的是新建一个新项目到服务器的操作,如第5步中配置gitosis.conf文件添加的是

[group project1] # 组名称

writable = project1 # 项目名称

members = xxx # 用户名xxx为[group gitosis-admin]中的members一样

# 记得执行

git commit -a -m “添加新项目project1“

git push

# 进入到项目目录

# project1要与gitosis.conf文件配置一致

cd /home/用户/project1

# .gitignore可以将你不需要上传的文件无视掉

vi.gitignore

config/database.yml

Gemfile.lock

Gemfile.local

#git初始化

git init

# 新增文件 留意后面有一个点

git add .

# 然后就到把这个项目放到服务器上去

git commit -a -m “初始化项目project1″

git remote add origingit@xxx:project1.git # xxx为服务器地址

git push origin master

# 也可以把上面的两步合成一步

git push git@xxx:project1.gitmaster

三、常见问题

首先确定 /home/git/repositories/gitosis-admin.git/hooks/post-update 为可执行即属性为 0755

1. git操作需要输入密码

原因

公密未找到

解决

上传id_pub.rsa到keydir并改为'gitosis帐号.pub'形式,如miao.pub。扩展名.pub不可省略

2. ERROR:gitosis.serve.main:Repository readaccess denied

原因

gitosis.conf中的members与keydir中的用户名不一致,如gitosis中的members =foo@bar,但keydir中的公密名却叫foo.pub

解决

使keydir的名称与gitosis中members所指的名称一致。

改为members = foo 或 公密名称改为foo@bar.pub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: