Git安装及对项目提供版本控制服务

 建议直接使用 gitlab 或者 gogs(开源很强大  -2016) 

近来要使用Git作为新项目的版本控制,抽出时间来恶补 了下,主要参考是《Pro Git》,如果用心看了这本书,我下面的内容可以不用看了。下面主要是在centos下搭建了安装了Git,然后作为一个对项目内部的版本控制。


 

一、安装

1 下载git

wget  https://github.com/git/git/archive/master.zip

2 安装

$tar zxvf git-2013-3-4.tar.gz

$cd git-2013-3-4/

$ autoconf

$ ./configure

$make && make install

 测试是否安装成功

$git 

如果出现info信息,说明安装成功

 

 

<!-----建议用gitosis来进行管理 ,不推荐ssh ---- 可以直接跳过看 第三点>

二、SSH管理

服务器端:

添加git管理账户

$ useradd git 

$ su git

生成公钥

$ ssh-keygen -t  rsa #一路回车

 

--

1在window下用puttygen生成公钥

2 将公钥的内容复制,写入到authorized_keys文件中(默认没有可以自己创建)

修改权限

chmod 644 .ssh/authorized_keys 

3 保存密钥为 project.ppk(供客户端工具使用)

--

创建新的版本库(git 用户)

$ mkdir project.git

$ cd project.git

$ git --bare init #新的空版本

第一次导出 git用户在本地

第二次用工具

客户端(windows--TortoiseGit):

创建文件-->右键选择gitclone

 

Load putty key 选项选择保存的 私钥

然后就可以正常克隆git的版本了

 

 

三、Gitosis管理(权限管理建议使用这种方法)

服务器端

1 安装Gitosis 

下载Gitosis 

wget  https://github.com/res0nat0r/gitosis/archive/master.zip

(地址可以自己寻找合适的,上面地址下载以后为master,需要改名为master.zip)

$unzip master.zip

$ cd gitosis-master

$ python setup.py install(root用户)

$ cd gitosis

 初始化 Gitosis 了。需要通过自己的公钥来运行 gitosis-init (git用户)

$ gitosis-init < /home/git/.ssh/id_rsa.pub 

 将这个新的控制仓库中的 postupdate脚本加上执行权限

$ chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update (root用户)

测试是否配置正确 

$ ssh [email protected]  (git用户)

输出下面内容为正确

PTY allocation request failed on channel 0

ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.

Connection to 192.168.1.83 closed.

 

$ git clone [email protected]:gitosis-admin.git   (git用户)

(若无法克隆,说明安装有问题,不是绝对路径)

$ cd gitosis-admin

$ ls

keydir 为放置公钥的文件路径

gitosis.conf为配置权限目录

$ cat gitosis.conf

默认内容:

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

Members = git@localhost

 

添加一个群组 

[group myproject]

writable = melon_project 

Members = melon  (多个时候,空格分开)

----

生成密钥,将公共密钥 存为melon.pub (跟members相同),上传到服务器/home/git/gitosis-admin/melon.pub,保存私钥保存

-----

$ git add .

$ git commit -m “message” .

$ git push

 

第一次需要通过这样的方式生成项目仓库

$ mkdir melon_p

$ cd melon_p

$ git init

$ git remote add origin [email protected]:melon_project.git

$ git push origin master  (会提示没有提交任何文件,无所谓,这步会创建melon_project.git仓库,也可以添加些文件 再提交push)

 

之后,就可以在外部克隆仓库了..

 

注意: 使用gitosis进行控制时,不能在url前面添加 ssh:// 添加了会无法克隆仓库

 

基本的服务端和客户端都已经实现了,可以用git来作为项目的版本控制了

猜你喜欢

转载自alfred-long.iteye.com/blog/1831370