搭建Git服务器并实现自动同步到Web站点目录

前言:当我们想要实现几个小伙伴合作开发同一个项目,或者建立一个资源分享平台的时候,Git就是一个很好的选择。当然,既然是一个共有平台,那么把这个平台放到个人计算机上明显是不合适的,因此就要在服务器上搭建GIT了。另一个需求是,我们在本地开发,然后推送到服务器上,并且自动同步到Web站点目录,这样就可以直接看到网页效果了,这就要实现自动同步。下面我带领大家实现这么一个功能。

如果条件允许的话,大家可以跟着做的(注:我的服务器是CentOS 7,LAMP环境)。

一、在服务器上安装git:

//yum安装 yum install -y git

在安装完之后你可以运行git进行测试,看看是否安装成功。

二、在服务器上创建裸版本库:

ps:远程仓库通常只是一个裸仓库(bare repository) — 即一个没有当前工作目录的仓库。因为该仓库只是一个合作媒介,所以不需要从硬盘上取出最新版本的快照;仓库里存放的仅仅是 Git 的数据。简单地说,裸仓库就是你工作目录中 .git 子目录内的内容

我们就在 /home/testgit/ 下创建一个叫 sample.git的裸仓库吧:

mkdir /home/testgit cd /home/testgit git init --bare sample.git //这里 git init 是初始化空仓库的意思,而参数 --bare 是代表创建裸仓库,这个参数一定记得带上

当运行完上面的最后一句命令时,会有提示:Initialized empty Git repository in /home/testgit/sample.git/
如果你得不到该结果,可能就要回头检查哪一步出问题了

三、创建web站点目录www

如果你已经拥有lamp环境,那么相信你已经了解该目录,搭建LAMP环境详情可以参考:CentOS 7下搭建LAMP平台环境  、CentOS 7下如何更改Apache默认网站目录 

Git推送到服务器自动同步到站点目录

现在我的 web 站点目录在 /home/www

四、在本地克隆服务器上的裸仓库:

前提:本地已安装git
打开 git bash ,我打算在我的D盘下创建一个名为 lsgogit 的版本库

cd /d git clone git@115.159.146.94:/home/testgit/sample.git lsgogit

在这里如果没有配置公钥的话,会提示输入密码,但是我们可能并不知道密码,那就配置公钥咯:
1、查看自己计算机的公钥:

//查看是否有了ssh密钥,如果没有密钥则不会有此文件夹 cd ~/.ssh ls -al //如果列出了authorized_keys2 id_dsa known_hosts config id_dsa.pub 则证明你拥有公钥。

我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。在 Linux/Mac 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。

首先 ssh-keygen 会确认密钥的存储位置(默认是 .ssh/id_rsa),然后它会要求你输入两次密钥口令。如果你不想在使用密钥时输入口令,将其留空即可。

现在,进行了上述操作的用户需要将各自的公钥发送给任意一个 Git 服务器管理员(假设服务器正在使用基于公钥的 SSH 验证设置)。 他们所要做的就是复制各自的 .pub 文件内容,并将其通过邮件发送。 公钥看起来是这样的:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAcnTC3A++ginnxr2dvtQa881abjGIzk99KQVg/sPpqvtT3espFKBs/wqrJ9naIPtCswKDMg2tBVgJzg5FimDjI44O072qAftRcjU2EEySlGDDetREOvcDxqcXzf6cAdhnKlYcPk8s46oC+SxhK0zAFZCZNc7z9GcEPOC+ESIettycDw/Bo11WfxAWS0hky2F3rYh5CRr8j7BKRsAvEaAyKwzmM9X0XCRniC2pD0ObX0/SjPwq9Q5/Vjg03muiSo5Bm/xmuHkwb4/uQglBwnaSqEr6YkL9xLMoNsQaJ1TAvTrEaZLNhWzN8iaPyKZMJEzPLX1NgeEx9AEae39N+NsJ LSGO@zhongjin

现在我们回到服务器管理员的身份

由于前面安装git的时候,centos会默认创建一个git用户(其他系统貌似需要手动创建),我们进入/home/git/.ssh,里面有一个名为 authorized_keys 的文件,我们分别将其他开发者的公钥(全选、复制、不能更改!)添加到该文件去,一个开发者的公钥分一行。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8cbe50da593f4883f753af923a75427f.html