您的位置:首页 > 编程语言

使用gitolite搭建代码库

2016-02-24 09:29 155 查看
Gitolite服务器搭建总结
项目需要搭建,自己记录下来,以后可以回看。

1.代码库中保存的数据在用户repo sync的时候会checkout出来,所以代码库的形式都是一个一个git文件夹

2. .ssh文件夹中一个id_rsa,id_rsa.pub

id_rsa:私钥文件,是基于RSA算法创建的,要妥善保存,不要泄露

id_rsa.pub公钥文件,与私钥文件是一对,可以公开

3.Gitolite

在服务器上创建root用户,然后使用root权限创建git用户

Sudo adduser --system --shell /bin/bash --group git

Sudo passwd git

*注意git用户的主目录/home/git 的owner一定要是git本身,否则在使用ssh的时候还是会提示输入密码。

在远程连接到git用户的时候,先ssh到root再su git即可。

4.创建gitolite服务器

(1)git clone git://github.com/sitaramc/gitolite

(2)mkdir -p $HOME/bin

(3)gitolite/install -to $HOME/bin

(4)ssh-keygen -t rsa(已经生成了public key就不需要再执行)

(5)cp ~/.ssh/id_rsa.pub admin.pub

(6)gitolite setup -pk admin.pub

至此gitolite已经装好了,在git主目录下会生成repository目录其中有gitolite-admin.git 这个是用来进行项目管理的文件夹,其中的conf中的文件是进行人员管理的配置文件,keydir中存放的是所有可以下代码的人员的key文件。

一般进行项目管理我们不会直接在代码目录进行,可以在代码服务器直接拉取gitolite-admin文件夹,然后将自己要操作的机器的key添加进去。之后就可以在管理员自己的机器上进行管理。

5.添加项目

(1)如果只是一个单一的git库,只需要在conf文件中添加这个git库的名字即可

(2)我们一般做的项目都是android项目,所以项目都是以文件夹的形式存在,具体配置可见如下截图:



testing就是一个单一的git库,l8909就是一个完整的Android项目。

创建一个git仓库示例:

(1)在代码服务器的repository文件夹中创建目录eg:amss

mkdir amss.git

cd amss.git

git init --bare

现在我们创建了一个空库

(2)在管理员的机器将空的代码库拉下来

1.建立一个新的空的工程

git clone git@代码服务器地址:amss(相对于repository的目录位置)

发现本地clone下来了amss文件夹,我们要进行init操作。

cd amss

echo init amss > Readme

git add .

git commit -m “init amss repository”

git push origin:master(第一次提交使用这个命令,如果直接git push会报错)

现在新的工程已经建立完毕。

2.将现有的代码push到新建的工程

有的时候我们要新建一个库,但是我们本地之前已经有了代码提交。所以我们要使用下面的方法来执行:

代码服务器已经建立好了amss.git但是没有任何提交,这时候我们本地有一份amss代码,我们可以直接将它push到代码服务器,步骤如下:

(1)进入我们本地的代码目录

(2)git remote add origin git@代码服务器地址:amss.git

(3)git checkout -b xxx (拉一个xxx分支)

(4)git push origin xxx:ooo(ooo是你希望在代码服务器的分支的名字)

这样就已经将本地的代码提交到了服务器

6.将从高通拉的项目直接做成自己的代码初始项目

Android项目代码我们从高通获得,管理员在初始拉代码的时候可以直接使用--mirror

eg:repo init xxxxx -b xxxx --repo-url=xxx --repo-branch=xxx --mirror

这样下载下来的就可以直接作为我们初始的代码库。

repo是根据manifest来下载代码的所以我们还需要修改

新的repo在remote fetch需要写为ssh://服务器地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: