将线下的项目自动同步到线上的WWW目录中

阅读次数: 6,319

  • A+
所属分类:建站

第一步先将线下同步至线上(同时要忽略部分配置文件)

1.在服务器上安装git

yum install -y git

安装成功后

git --version
git version 1.8.3.1

2.在服务器上创建裸库(bare repository)一个没有工作目录的仓库,仓库是没有文件形式的,只是保存元数据。如果要看文件可以 clone你的项目

mkdir /home/git
cd /home/git
git init --bare obj.git

--bare是代表创建裸库,此参数一定要带上

3.创建web站点目录或使用已存在的站点目录 /www/wwwroot/www.shikexu.com (宝塔类型)

4.在本地电脑上创建分支并连接至远端仓库

先安装 git(可以在网上搜索到下载)我的是windows64位系统

安装好后找一个空的文件夹如 D:/obj/ 这个目录

进入这个目录 鼠标右键

将线下的项目自动同步到线上的WWW目录中

打开后输入

git clone git@8.8.8.8:/home/git/obj.git www.shikexu.com

5.这里肯定会报错因为我们还没有配置 git用户用ssh登录的秘钥

此时本地的 git 窗口不要关闭直接输入

cd ~/.ssh
ls -la

出现几个 id_dsa.pub 总之以 pub结尾的都可以用 随便 查看一个 公钥复制到服务器端就可以

cat id_rsa.pub 

将查看出来的一传秘钥直接复制到 线上服务器的 /home/git/.ssh/authorized_keys 即可,如果没有这个文件则直接创建,创建后记得使用 chown -R git:git authorized_keys 来改变文件所属人

如果你的本地电脑一个秘钥都没有,那你可以查看本站的git文章或百度搜索查询结果

6.以上步骤完成后我们就可以测试上传和下拉了

cd www.shikexu.com #进入仓库目录
touch index.php #创建文件
git add index.php
git commit -m "test commit"
git push origin master

推送前 记得 使用

chown -R git:git /home/git/

7.自动同步到web目录

cd /home/git/obj.git
cd hooks
vim post-receive
输入内容 start
#!/bin/bash
git --work-tree=/www/wwwroot/www.shikexu.com checkout -f
输入内容 end

chown git:git post-receive
chmod +x post-receive

8.将 git用户加入 www用户组 并将 /www/wwwroot/www.shikexu.com 设置为 775

提示:可以同时push到多个远程仓库

添加第二个远程地址时用下边的命令

git remote set-url --add origin git@github.com:morethink/programming.git

此时再 push git push orgin master

小提示:当有多个程序员时可以让大家用同一个账号不然有时候会出现问题

使用 chmod g+s /www/wwwroot/www.jack.com 来改变 setgid 权限

至此第一步结束

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: