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

Centos 6.3 部署GIT服务器

2014-12-28 22:24 423 查看
前言

之前各用各的GitHub,因工作需要,不得不在局域网内架设一个GIT服务器供程序猿协作开发,在这里记录下我的安装过程。

1.先在服务器端配置环境

直接用yum 安装:

yum install gettext-devel

yum install openssl-devel

yum install perl-devel

yum install python

yum installpython-setuptools

下面的我好像没装也可以用,可高手们说一起装上!!!

yum install curl-devel

yum install expat-devel

yum install zlib-devel

可以串起来一起装,没被墙掉没什么问题的!

2.在服务器端安装GIT

yum install git

git --version //可以显示版本号表示安装成功了!

3.在服务器端安装gitosis

现在可以用git了

[root@w_centos ~]#git clone git://github.com/res0nat0r/gitosis.git //下载

cd gitosis //进入目录

[root@w_centos gitosis]#python setup.py install  //安装

//显示Finished processing dependencies for gitosis==0.2表示安装成功!

4.在客户端(Windows工作机)上安装git,再生成密钥并上传到服务器端

生成密钥:

$ssh-keygen -t rsa -C “邮箱地址”

在C:\Users\用户名\.ssh目录下找到id_rsa.pub并上传到服务器端的根目录/tmp文件夹中

5.在服务器端生成git账户,用git账户初始化gitosis

创建一个git账户作为git版本管理专用:

[root@w_centos ~]#useradd -c 'GIT版本管理专用账户' -m -d /home/git -s /bin/bash git

设置git账户密码:

[root@w_centos ~]#passwd git

转换到 git用户

su - git

导入第4步上传的密钥到gitosis

gitosis-init < /tmp/id_rsa.pub

显示以下信息表示成功

#Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/

#Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

6.在客户端管理服务器端的GIT项目

随便找个位置右键选Git Bash Here

输入:git clone git@10.10.10.100:gitosis-admin.git //10.10.10.100为服务端IP

这样就可以把服务端的项目配置clone回来

客户端工作机的密钥在keydir目录中,有新的工作机添加到这个目录下

在gitosis.conf的结尾添加项目

[group test-git] # 具有写权限的组名称

writable = test-git # 该组可写的项目名称

members = xx@xxx.com aa@aaa.com
#该组的成员(密钥用户名) 多个用户协同开发时,以空格分隔

# 如果要增加只读的组 参考如下

# [group test-git-readnoly] # 具有都权限的组名称

# readonly = test-git # 该组只读的项目名称

# members = xx@xxx.com # 该组的成员

#提交修改

git add .

git commit -a -m "添加项目"

git push

7.提交项目

新建一个test-git目录

git init

放些文件到这个文件夹在

git commit -a -m "init test-git"

git remote add origin git@10.10.10.100:test-git.git

git push origin master

成功!!!

无法添加协同开发用户密钥时注意以下几点:

1.配置 本地环境

git config --global user.name "Name"

git config --global user.email "邮箱"

git config -l # 查看配置

2. 不能以数字开头的名称如33333@qq.com

3.push 的时候只能用 git push,如果git push origin master这样的话不会添加到authorized_keys文件中去。

4.Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果 是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:
$ git config --global core.autocrlf true

Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换:

$ git config --global core.autocrlf input

这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。

如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:

$ git config --global core.autocrlf false

5.用"写字板"工具编辑,"记事本"有可能会出错,出现换行要注意。

6.有些系统(中文用户账号)生成的密钥无法添加进去

解决办法:

手动添加 $ cat /tmp/xxx@xxx.com.pub >> ~/.ssh/authorized_keys

参考:

<a target=_blank href="http://blog.sina.com.cn/s/blog_904dee7f0101gait.html">http://blog.sina.com.cn/s/blog_904dee7f0101gait.html</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: