GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用,下面演示下在centos环境下搭建自己的git服务器过程:
我的系统版本为centos7
安装git命令:
$ yum install git
安装完成截图:
git和mysql不一样,mysql在安装时,得安装mysql-server,即mysql服务器,git是分布式的,每一个安装了git的电脑,既是客户端,也是服务器,git与git之间可以相互通信,而我们所谓的git服务器,实际上和我们自己的电脑没有什么本质上的差别。但是,我们为了更有效的管理项目,都采取中心化的管理方式,因此创建一个“git服务器”,作为其他所有人提交代码的最终终端。摘至西北逍遥的博客
由于我的服务器设置了密钥登录,所以需要下面几步
创建一个git用户组
$ groupadd git
创建用户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