git仓库与项目源码分离

之前是将项目源码放到git仓库下面,后面想一下觉得有点麻烦,若是在服务器端切换分支的话是直接将服务器端的项目代码切换到对应的分支下的代码,这个时候若是有人访问网站可能会出现问题,所以我就想有没有办法将git仓库与项目源码分离,不将源码放到git仓库下面,git仓库不存放源码,只做版本控制,后面也确实找到了对应的方法,是用hook钩子,现在说一下具体的配置方法:

1.在服务器端项目文件根目录下新建一个同级目录,

例如项目文件是在 /home 目录下的文件名为demo,那么在linux执行下面操作

cd /home

mkdir git && cd git    //这里新建一个git文件夹并切换到目录下

mkdir demo.git  && cd demo.git     //这里新建一个文件夹做git仓库

git init --bare            //git仓库初始化,--bare的意思是创建裸仓库

初始化后我们可以看到自动生成一堆文件,

ls        //查看文件

cd hooks             //到hooks文件目录下

cat > post-receive      //按回车输入下面的内容

#!/bin/sh

git --work-tree=/home/demo --git-dir=/home/git/demo.git checkout -f /*/home/demo为项目文件的地址,/home/git/demo.git为git仓库地址*/

输入完成后回车并按ctrl+D保存,然后输入

chmod +x post-receive

2.本地

若是已经有git项目了,直接添加一个仓库地址就行了

git remote add vps ssh://xxxxx@xxxxxxxx/home/git/demo.git //vps是远程库的名字,xxxxx@xxxxxxxx是服务器地址,后面的是仓库的地址

以后推送的时候推送到vps这个远程仓库下,就会将更新推送到我们设置的路径,也就是远程项目文件目录

git push vps master

这样就可以实现git仓库与项目源码分离了,git仓库只做版本控制,不会影响到项目源文件,我们也可以分离出一个域名用于测试,测试没问题后再将项目更新推送到线上的项目中

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页