用git部署网站代码到生产环境

创建自己的仓库

cd /var
mkdir git && cd git
mkdir your_site.git && cd your_site.git
git init --bare

--bare的意思是,该文件夹是我们的代码仓库,它将不会放源代码而只是做版本控制。

Hook钩子

我们将会使用post-receive钩子,更多钩子及含义可以参考git文档 在your_site.git文件夹中

ls

你可以看到有hooks文件夹已经为我们创建好了,而且里面也有各种钩子的样例

cd hooks

创建我们自己的post-receive

vim post-receive

按回车后提示我们继续输入,接下来输入的动向都会被放入post-receive文件中。

#!/bin/sh
git --work-tree=生产环境网站文件夹位置 --git-dir=/var/git/your_site.git checkout -f

输入完成后按ctrl + D保存,git-dir指的是仓库的址, work-tree则是存放代码的位置,也就是我们的网站的源代码的位置。 接下来则是要保证它可以运行:

chmod +x post-receive

本地

一般情况是你已经有了自己的git项目了,那么只需要添加vps的仓库地址就行了

git remote add myVPS-sitename ssh://user@mydomain.com/var/git/your_site.git

'myVPS-sitename'只是这个远程连接的名称,你可以同时有多个远程连接,每次push的时候指定名称即可将代码上传到不同的仓库。
如果你本地还没有项目代码:

cd 项目地址
git init

添加一个README.ME文件后

git add .
git commit -m "项目初始"

接下来我们便可以将代码push到vps了:

git push myVPS-sitename master

master指定的是master分支,如果你有其他分支也可以push其他分支。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 106,498评论 12 127
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 10,119评论 9 162
  • 今天第一天开始上班,没有任务,于是开始学习Git这一程序猿必须掌握之技能,希望今天的积累过后,对与Git或者...
    CoderTung阅读 7,474评论 2 97
  • 最近几年每年暑假都会和几个朋友带着孩子去旅行,基本都是十天以上,提前规划好路线,提前包好当地的车,十来人愉快地自由...
    湖水涟漪阅读 278评论 3 5
  • 新买回来的不带水冷公版GPU,在满负载运行的时候,温度从室温马上飙升到85度,而且模型训练不是几分钟完事,很有可能...
    人工智豪阅读 16,141评论 1 20