因业务需要搭建远程git服务器,期间遇到了些许问题,在此记录一下,给对于服务器端操作不太熟悉的同学一点帮助(每条命令后都有较为详细的解释,若对命令不熟悉可以读一读)。
服务器及本地环境
服务器端 使用centos 6.5版本 本地(即clone方)OSx系统终端
安装git
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel //安装git需要的依赖包
$ ssh root@{port} //链接远程服务器 里面的port使用真实服务器ip进行替换
$ yum install git //yum是CentOS中的软件包管理工具,类似于前端经常使用的npm,简单的 yum install [packageName] 即可进行程序的安装
创建用户及群组
如同svn一样,一个远程的git将会有多个项目组或多个人进行使用,这个时候,需要创建多个账号及用户组,这样无论是需要查找某段代码是谁进行的修改,亦或是需要进行权限的管理都显得方便许多。
$ grouped gao_team //添加 名称为gao_team的用户群组
$ adduser gaogao -g gao_team //添加用户 gaogao 至gao_team群组(前面的git为用户名 后面的为群组名字)
$ passed gaogao //用户初始状态下无密码,若无密码 是不可以登录的 保护机制 在链接的时候 也可能会出现报错
初始化需要使用git的文件夹
$ cd /home //进入家目录,此目录是刚才建立的用户可访问的首页目录,如建立用户gaogao,则其家目录为 home/gaogao 而root用户可看到此服务器中所有用户的家目录
$ mkdir gaogao_file //mkdir命令建立 gaogao_file 文件夹
$ chown gaogao:gao_team gaogao_file //通过chown改变文件的拥有者和群组,此操作中将gaogao_file文件夹的所有者改为gao_team的gagao(注意,此命令需要root权限者才能进行操作)
$ cd gaogao_file //使用cd命令进入我们刚创建的gaogao_file文件夹
$ git init - -bare gaogao.git //初始化git库,注意 git init 命令 和 git init - -bare命令是不同的 git init - -bare建立的git库是不支持各种git操作的裸仓库,其只保存git历史提交的版本信息,不允许用户进行git操作
Initialized empty Git repository in /home/gaogao_file/gao.git/
这里若成功,则会出现提示,下面我们用chown命令,将刚新建好的gao.git的所有者改为gaogao用户(和刚才文件夹操作方式大同小异)
$ chown -R git:git runoob.git //这里多了个-R,意味向下进行循环,即这个目录及其下面的子目录的所有者均进行改变,当然了这个chown命令依旧是需要root权限者才可以进行操作的。
试试效果
使用本地终端,进行操作
$ git clone git@xxx.xx.xx.x:/home/gaogao_file/gao.git //这里使用你的ip对xxx.xx.xx.x进行替换
Cloning into 'gao'...
warning: You appear to have cloned an empty repository.
Checking connectivity… done.