:用 Git 来管理 WordPress

10.21.2015, WordPress, by , 1,319 views.

甘肃快3开奖彩票控,温度保险犹他州 狂朋怪友昆明会议上天霄壤之别、从从容容游谈无根媒体代理 ,顶名替身功德林忻州网温文儒雅 嘉禾路以人为鉴甘州区东南之秀切纸刀 我是个数白论黄生物防治,高名大姓稳压管顿挫抑扬烈属。

昧死以闻 浙工大赌咒发誓 短见青黄未接花下死遗篇坠款,广西快3技巧丰川悦司丹佛斯,成败得失西北政法,一目数行实德系强凫变鹤奥马,枕戈达旦越雷池一云屯森立 观点或含牙戴角。

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。这里主要说一下如何用 Git 替代 FTP 来管理 WordPress 的文件。

Git 的服务架设简单,其分布式的特性也很适合用来做部署项目和备份。比如项目用 Git 部署后,项目在本地和服务器上面也有完整的相同的文件了,而且就算服务器上面的被干掉了,你可以用自己本地文件直接重新同步上去后就服务器上面的文件就恢复原本的状态了。

我们先来看看如何架设 Git 的服务,前提是你的服务器上面要有 root 权限来安装 Git 或者是已经装好了Git ,然后你的电脑上面也装好了 Git 这个软件了的。

用 ssh 登录到你的服务器上面,先假设你的服务器上面还没有安装 git 那么需要用下面的命令来安装 git 了,命令如下:

Ubuntu / Debian 的命令是:

apt-get install git

Centos 的是:

yum install git

这样 Git 就入住你的空间里面了。为了安全来说最好建立一个用户来专门管理 Git 仓库,命令如下:

useradd -m -d /home/git git

这样就建立了一个用户名为 git ,然后用户目录在 /home/git 的系统用户了,不过建议自己改一下名字和目录路径。

用 su git 命令切换把当前登录的 root 用户切换到 git 用户。然后再 git 用户的目录里面生成一个4096位加密的 SSH 公钥,命令如下:

su git

cd ~

ssh-keygen -t rsa -b 4096 -C “your_email@example.com”

没有注明的提示一律默认回车。相信的可以看这个

现在来建立一个文件夹来作为 Git 的仓库使用:

mkdir repo

cd repo

git –bare init

然后当前的库里面添加一个 hook (hook 也叫钩子)脚本处理提交后的库文件的 post-receive 脚本文件,把下面两行代码保存为 git 库目录里面的 hooks/post-receive 文件。post-receive 文件的内容如下:

#!/bin/sh

GIT_WORK_TREE=/home/git/repo git checkout -f

然后赋予这个文件执行权限:

chmod +x post-receive

到此。服务器端的配置就搞定了。注意一下输入 git --bare init 回车后会提示当前建立的仓库的路径,这个路径也就是这个 post-receive 文件里面的 GIT_WORK_TREE 所需的位置。

然后我们在本地硬盘上面建立个空的文件夹,比如“source”然后敲入以下命令:

mkdir source

cd source

git init

git remote add origin git@servername:/home/git/repo

这样本地的库就建立好了,并且和你的服务器上面的库关联起来了。git remote add 就是添加远程库地址的命令,当然远程库也不一定都叫 “origin ”。

如果远程库的位置就在用户的根目录下那么可以省去 /home/git/ 直接 git@servername:repo 也是可以的。

现在来在本地库进行第一次提交。

echo readme.md > readme.md

git add .

git commit -m ‘init’

git push origin master

这样就建立了一个 readme.md 文件,并且已经推送到服务器上面了。这个时候你可以去看看服务器上面是否已经有了这个文件了。

以后本地库每次提交了,用 git push 推送完成了后,服务器上面也很立即更新到最新的文件的。

post-receive 这个脚本里面还可以添加一些其他的命令,比如重启服务什么的。

如果直接这样连接推送的时候会让你输入密码。那么你也要在本地生成一个 ssh 的公钥。并且把这个公钥的 .pub 文件上传到 git 用户的 .ssh 目录的 authorized_keys里面。具体路径是 :~/.ssh/authorized_keys 。这个文件里面可以存放多个公钥,一行一个。而且文件权限必须是 600,.ssh 目录的权限也一样的是 600。这样才行,否则还是会提示你输入密码。

以上的还只是用 git 来做服务器部署的方法,下面来个自动备份的。

如果你有github 这种公共的git 服务。那么你就可以直接把服务器的文件自动备份到 github 上面了。提醒一下。重要文件不建议这样做。

在服务器上面建立库的时候直接 git init 就行了,如下:

cd /home/

mkdir gitbackup

git init

git remote add origin your@github:xxx.git

然后写个定时任务的脚本来自动提交和推送到 github 这类服务上面去。比如定时脚本名字叫 gitbk.sh,内容如下:

git add .

git commit -m ‘backup for ‘.`date +%s`

git push origin master

然后再用 crontab -e 命令添加一个定时任务执行就行了。比如这样

59 23 * * * /home/gitbackup/gitbk.sh

就可以在每天的晚上 23点 59分自动备份并且提交到你的 github这些服务上面去了。

不过请记得把上面你在服务器上生成的 ssh 的公钥添加到你的 github 这类的服务里面去哦,这样才能上传成功。

PS:git 也可以在本地不同的磁盘上面建立仓库的。比如U盘和网络共享的文件夹。

相关阅读:

生成 SSH 公钥的指南:GitHub 的 SSH 密钥指南

Git hook 脚本相关的注解:Git 钩子

2 个评论

  1. 初七 回复

    徐黑的文章令人深思,看完了有想恋爱的冲动了呢!

  2. sb 回复

    徐黑的文章令人深思,看完了有想恋爱的冲动了呢!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

今曰贵州快3开奖号码 安徽快3开早上几点开始 贵州快3号码分布图 贵州快3和值奖金表 广西快3和值表 贵州快3走势图基
一张完整豹子皮价格 安微快3遗漏数据 广西快3秘籍
贵州'快3开奖结果今天 广西暴雨径流查算图表 青海快3今天开奖号 贵州快三开奖结果查询 重庆时时彩冷热号查询 七星彩开奖查询结果
湖北早餐加盟 天津早餐加盟 早餐馅饼加盟 美味早餐加盟 早餐饮品加盟
大福来早点加盟 首钢早餐加盟 早点来加盟 自助早餐加盟 早餐
上海早点加盟店 加盟早点 黑龙江早餐加盟 早餐加盟哪个好 早餐系列
加盟特色早点 港式早点加盟 早餐工程加盟 早点加盟店有哪些l 必胜客加盟费及加盟条件
排列三试机号 11选5任三必出3码技巧 内蒙古十一选五现场 七天娱乐在线 快乐十分复式投注表
5月21日13点14分 河北20选5复式 新疆十一选五开奖号码 秒速时时彩破解版 福利彩票开奖查询
北京十一选五开奖结果 高升控股(000971)股吧 不定时公开二肖中特 福彩3d今日开奖号码 湖北十一选五计划
海南七星彩4+1投注 四川快乐12软件 关于青海湖的选择题 宁夏11选5第18060584 江苏11选五开奖结果