GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用,下面演示下在centos环境下搭建自己的git服务器过程:

安装

我的系统版本为centos7
安装git命令:

$ yum install git

安装完成截图:

git和mysql不一样,mysql在安装时,得安装mysql-server,即mysql服务器,git是分布式的,每一个安装了git的电脑,既是客户端,也是服务器,git与git之间可以相互通信,而我们所谓的git服务器,实际上和我们自己的电脑没有什么本质上的差别。但是,我们为了更有效的管理项目,都采取中心化的管理方式,因此创建一个“git服务器”,作为其他所有人提交代码的最终终端。摘至西北逍遥的博客

创建git用户及权限

由于我的服务器设置了密钥登录,所以需要下面几步
创建一个git用户组

$ groupadd git</li>

创建用户perfree并设置用户的目录为/home/git/perfree

$ mkdir -p /home/git
$ useradd perfree -g git -d /home/git/perfree

切换到perfree用户并进入用户目录

$ su perfree
$ cd ~/

创建密钥对文件,输入以下命令,一路回车:

 	$ ssh-keygen -t rsa

将生成的公钥文件重命名为

 	$ cd .ssh/
 	$ mv id_rsa.pub authorized_keys

便于区分,也将私钥文件重命名

$ mv id_rsa id_rsa_perfree.pem

将目录.ssh权限设置为700,公钥文件authorized_keys设置为644

$ chmod 700 ../.ssh/
$ chmod 644 authorized_keys

设置密码

接着我们给这个git用户设置下密码,此命令输入完后会让你输入密码和重复输入密码:

 	$ su root
 	$ passwd perfree

如图:

公钥

这个是git里面比较特殊的一步操作,通信的时候,客户端与服务器需要一个证书进行验证。操作方法很简单,首先在你自己的电脑上,注意:是自己的电脑!生成自己的一个公钥,我这里拿windows举例,推荐你装一下git客户端,下载地址git,我们打开git bash进行操作:

 	$ ssh-keygen

一路回车~~~~

打开上图中显示的路径,找到id_rsa.pub文件,将其中内容复制,去服务器上操作:
先切换至perfree用户:

 	$ su perfree

接着操作:

 	$ cd git/perfree/.ssh/
 	$ vim authorized_keys

把我们复制的公钥另起一行添加进去就行了,如果要配置多个,同样另起一行就可以了,如图:

初始化一个仓库

创建建一个测试目录test-git:

 	$ cd ~
 	$ mkdir test-git
 	$ cd test-git/

初始化仓库:

 	$ git --bare init

会提示你初始化了一个空的仓库,不用搭理他

测试

在客户端git bash上操作:

 	$ git clone perfree@47.104.251.24:/home/git/perfree/test-git

会提示是一个空仓库,不用管它

接着我们上传一下试试,随便添加一个文件到仓库里,再执行以下命令:

$ cd test-git/
$ git add .
$ git commit -m "firstCommit"
$ git push

可以看到,已经提交上去了~~~~~~

权限处理

如果你是自己的服务器,自己玩的话,以上基本就够了,但是如果是多人开发,可以百度参考gitolite

 

原文链接:https://yinpengfei.com/article/23