centos搭建一个git服务器

centos6.3搭建一个git服务器

十篇博文:

一、centos6.3搭建一个git服务器

二、通过gitolite架设git仓库

三、在linux(CentOS)上搭建git服务器和配置gitolite权限管理

四、git权限问题

五、在centos 下安装配置基于gitosis 的git 服务       或者     Linux系统CentOS下搭建Git服务器Gitosis

六、使用Gitolite搭建轻量级的Git服务器(gitolite 和Gitosis 区别,Gitosis已经停止维护)

七、简单方便Git的艰难第一步 (权限、新用户)

八、centos6.2服务器上用gitolite部署git服务器(转)

九、Gitolite 构建 Git 服务器

Git远程操作详解

十一、GitHub常用命令

联合参考文章一、文章九、文章十。按照文章一可以不懂的前提下创建git服务器,并搭建个大概,这个时候看文章九、十,这两篇文章从框架的高度去介绍可以较好了解原理

基本命令:(cd /home)  、 (rm 文件名)、 (rm -rf 文件夹)、(mv 原文件名 新文件名)、  (su 用户名)切换至某个用户名、  (su -)从某个用户切换出来、(ls)查看文件夹详细(mkdir)新建一个文件夹 、(vi 文件名)进入查看和编辑,在vi情境下:退出:输入ZZ,或者输入‘:q+回车'  ;退出并保存:':wq+回车' ;编辑:’a‘

defaults write com.apple.finder AppleShowAllFiles -bool true   (显示隐藏文件)
defaults write com.apple.finder AppleShowAllFiles -bool false    (关闭‘显示隐藏文件)

第一篇     centos6.3搭建一个git服务器

一.centos

    os: centos63(Final)

    git: 1.7.1

    gitolite

    步骤很简单,需要安装git, ssh支持,gitolite, 然后公钥 . 本文全部采用的yum包过来的.

  

1. 登录服务器(ssh [email protected]),安装,(# 是root 登录后的.)

#yum install perl openssh git

装不上,那就装下面的依赖

#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

2.建立一个用户

#adduser --system --shell /bin/sh --create-home --home-dir /home/git git    (在home下会建个git文件夹,如果是第二次执行,最后一个git需要换个名字,后面的跟着换)(命令:添加用户组 groupadd git)centos系统添加/删除用户和用户组的例子

 #cd /home/git

#mkdir repositories

#chown git:git -R ./repositories    (每天一个linux命令(30): chown命令)  chown [-r] [用户名称:组名称][文件或目录]

#chmod 700 ./repositories          (每天一个linux命令(27):linux chmod命令)  1+2+4 :[执行]+[读]+[写]    ugo:用户、群组、other

3.切换至刚建的git用户 ($ 表示用户)    (git是用户名,可以是git1,git2....)

#su git (git是用户名,可以是git1,git2....前面建用户是什么名字,就用什么名字)

$git clone git://github.com/sitaramc/gitolite   (这里直接复制粘贴,这个git 不是用户名)

$mkdir -p $HOME/bin

$gitolite/install -to $HOME/bin

这里可能会报错缺少模块,就需要 切换到root 安装缺失模块.比如perl-Time-HiRes 这个

$su - 

 输入服务器root密码

#yum install perl-Time-HiRes

#su git

$gitolite/install -to $HOME/bin

然后这里安装的就完了.


本机, 本机我这里是debian,

#ssh-keygen

#cd /root/.ssh

里面有id_ras.pub 和id_rsa ,一个是公钥,一个是私钥. 如果之前你装过openssl产生过密钥,那这里就不要覆盖了

复制到服务器的/tmp

#scp ~/.ssh/id_rsa.pub server_username@server_host:/tmp

例子scp /Users/ming/git_key.pub [email protected]:/tmp)

(例子:scp /Users/ming/.ssh/id_rsa.pub [email protected]:/tmp)


输入密码

回到服务器, 

#cd /tmp

#mv id_rsa.pub admin.pub 

为什么要改成admin.pub 因为gitolite根据这个文件名来设立帐号.我这里用admin

#su git 切换到git用户

$$HOME/bin/gitolite setup -pk admin.pub

(这里会有两个警告:

WARNING: /home/git/.ssh missing; creating a new one

    (this is normal on a brand new install)

WARNING: /home/git/.ssh/authorized_keys missing; creating a new one

    (this is normal on a brand new install)

然后去/home/git/repositories 里面,可以看见仓库文件.gitolite-admin.git 和test.git 一个是管理仓库的,一个是测试用


本机拉服务器代码

#git clone git@server_host:gitolite-admin

(例子git clone [email protected]:gitolite-admin)

进入仓库后可以看到conf 和keydir ,conf/gitolite.conf 是添加用户/仓库的配置, keydir 是放对应用户的公钥.

修改好后可以直接push了.


(如果无法拉取,试着修改权限后:chmod -R g+r gitolite-admin.git )


//这时你有可能无法push,原因各种各样。提示我的问题是“让我升级” 

#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
#wget https://github.com/git/git/archive/v2.2.0.tar.gz
#tar zxvf v2.2.0         //解压
#cd git-2.2.0
#make prefix=/usr/local all
#make prefix=/usr/local install  #root

这时如果一切顺利,从新链接服务器,查看版本,会得到如下结果

# git --version      //输出下面的版本
git version 2.2.0

如果有编译错误点这个链接:CentOS服务器安装 Git 2.2.0


至此,你可以从服务器clone项目,也可以push你的项目到服务器


二.debian的


和上面一样,唯一需要注意的adduser 的参数不同

#adduser --system --shell /bin/sh --home  /home/git git 



三.搭好环境后,配置:权限、用户/组

1.进入服务器项目的地址,比如下面的例子,进入test 的conf文件夹内

[root@localhost ~]# cd /opt/svn/

[root@localhost svn]# ls

edu  photoo  showfunny  showfunny1 test

[root@localhost svn]# cd test

[root@localhost test]# ls

conf db  format hooks locks  README.txt

[root@localhost test]# cd conf

[root@localhost conf]# ls

authz  passwd  svnserve.conf

2.修改 svnserve.conf,做的操作是去掉前面的(' # '),不要留空格。(进入方式,输入: vi svnserve.conf )。如下

# anon-access = none    

# auth-access = write

# password-db = passwd

# authz-db = authz

# realm = My First Repository

3.修改 passwd,为用户配置密码。(进入方式,输入:vipasswd )。如下

[users]

harry = harryssecret

sally = sallyssecret

ming = 7123

guo = 123

4.修改 authz,为用户配置权限,分组。如下

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

ios = ming,guo          定义一个分组,成员为ming,guo


# [/foo/bar]

# harry = rw

# &joe = r

# * =

[test:/]     在test目录下,这些用户的权限

ming = rw

guo = r


//    svn://192.168.1.110/IOS/






你可能感兴趣的:(git)