手把手教你用git发布blog
是的社区的 blog 文章很早就改进为基于 .md 的静态发布了, 但是,具体怎么折腾的呢?
由我们的小言现学现卖给大家伙儿 ;-)
背景
如果用过 Wordpress 之类 CMS 系统为基础的 blog 环境,就知道, 一个 blog 网站不是那么简单的,至少包含以下关键性功能:
- 用户管理
- 撰写
- 发布
- rss
- cleanurl
- tag
- 分类
- 评注
- …
而这所有的功能,又都要围绕一个数据库来折腾, 所以,传统的 blog 系统,至少要包含:
- 数据库
- 应用系统
- 发布系统
三大部分都要进行分别的安装/配置/测试/运维…
而且,即使 Wordpress 专注开发了10多年, 其在线文章编辑器,依然那么的难以使用…
所以,一切,在 Markdown 出现后终于进化了!
概述
现在 珠海GDG 的官方Blog ,是无网站全静态发布!
- GitCafe 作为代码托管服务, 替代了以往专用系统的
- 用户管理
- 撰写
- GitCafe Pages 服务,替代了:
- 发布
- rss
- 而隐藏在 pages 服务中的, Jekyll 替代了专用系统的:
- cleanurl
- tag
- 分类
- Disqus 纯JS 嵌入式评注服务,替代了专用系统的:
- 评注
即,现在 blog 文章的撰写/修订/发布/管理,只需要:
- 使用 markdown 格式在本地编辑
.md
文本 - 通过 git 向 gitcafe 推送编辑结果
其它一切都自动化完成了!
参考:
过程
以下以 小言 多方尝试后的最终成果来罗列
- 环境:
Ubuntu
- 如果想对应 Windows 环境中的操作,请自行搜索相关文章,或是请小言 哈根达斯 一次,来增补相关内容 ;-)
初始化
在本地建立基于 pages 服务的静态化blog 文章维护环境,是一次的,建立好后, 以后就再也不用折腾的了.
- 安装git
sudo apt-get install git
- 注册 gitcafe 进入 zhgdg/zhgdg - GitCafe
点击右上角的”派生”, 生成自己专用的社区文章仓库分支.
- 初始化本地仓库
# 进入合适的本地目录
$ cd ~/blog
# 克隆自己的文章分支仓库
$ git clone https://gitcafe.com/你的帐号名/zhgdg.git
...
- 进入pages 专用分支:
进入目录:
cd zhgdg
# 察阅当前分支
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/gitcafe-pages
remotes/origin/master
# 切换pages 分支
$ git checkout gitcafe-pages
Branch gitcafe-pages set up to track remote branch gitcafe-pages from origin.
Switched to a new branch 'gitcafe-pages'
# 检查当前状态
$ git branch -a
* gitcafe-pages
master
remotes/origin/HEAD -> origin/master
remotes/origin/gitcafe-pages
remotes/origin/master
# 也可以用 status 命令
$ git status
On branch gitcafe-pages
Your branch is up-to-date with 'origin/gitcafe-pages'.
...
- 配置提交口令
修订本地仓库的配置文件,可以通过 https 协议,自动输入用户/口令,来提交修订
- 进入本地仓库的
.ssh
目录 - 用文本编辑器,修订
conf
文件, 修订以下部分
...
[remote "origin"]
#url = [email protected]:你的帐号名/zhgdg.git
#将这一行替换为
url = https://你的帐号:你的口令@gitcafe.com/你的帐号名/zhgdg.git
fetch = +refs/heads/*:refs/remotes/origin/*
...
SSH 支持
- 生成公钥 (可选,用以 SSH 无口令提交内容)
ssh-keygen -C "your email" -f ~/.ssh/github
输入以上指令后,会出现一段内容.
其中
...
Your public key has been saved in /home/用户名/.ssh/github.pub
|
+-- 即新公钥所存放的位置
...
查阅公钥:
# 进入目录
$ cd /home/用户名/.ssh/
# 打印公匙
cat github.pub
...
cat之后出现的那一大段字符就是你的SSH公钥了
- 注册gitcafe,然后在 您的 SSH 公钥 - GitCafe 上传公匙,
以便使用 SSH 协议进行加密无口令提交!
这样就不用将真实的用户和口令,暴露在本地配置文本中了
撰写
以下只是文章撰写前后要进行的工作, 而具体文章撰写的要求,参考专门的说明: 珠海GDG 社区文章 撰写指南
- 进入_posts目录,并查看过往文章
- 对过往文章,可以进行修订
- 也可以参照以往文章的格式,创建新文章,分享自个儿的想法/心得/体验
只是注意,每次编辑完要及时:
# 查阅当前仓库状态
$ git status
# 追加新增文件
$ git add .
# 提交文件修订
$ git commit -am "提交注释..."
注:可用”git log”查看提交日志
发布
在不同角色背景下, 文章的发布是有不同管理流程的.
frok-pull request 流程
这是 git 首创的社区协同流程,可以最大限制的接受最广泛的贡献.
但是,涉及 git 的多种操作建议认真参考:
-
[Mort Pull Request的正确打开方式(如何在GitHub上贡献开源项目)](http://www.soimort.org/posts/149/)
我们的社区文章仓库也一样,和当前 小言 自个儿的私人分支仓库的关系, 决定了,小言的文章想最终发布到官方网站 http://blog.zhgdg.org/
得经过以下步骤:
- 礼貌的同步官方仓库,整理好自个儿的提交
- 提交整理好的 修订
- 发起 pull request
- 等候管理员合并 pull request
礼貌整理
简单的说,就是将自个儿多次修订,压平为一次提交,并解决可能的冲突
- 追加上游仓库(一次性的)
$ git remote add upstream https://gitcafe.com/zhgdg/zhgdg.git
# 检查状态
$ git remote -v
- 获得上游更新
$ git fetch upstream
- 尝试合并上游更新
$ git rebase upstream/gitcafe-pages
# 如果有冲突,根据提示完成修订
提交修订
提交合并后的成果 ,是标准的 git 推送操作
$ git push -f
发起PR
进入自个儿的仓库界面,点击右上角的”合并请求”/”pull request”.
进入以下界面后填写相关内容,点击”发送合并请求”
完成合并
管理员将在主仓库的 合并请求
列表中看到新的 PR
点击 接受请求
就可以在服务端完成合并,以及 Jekyll 编译和发布了.
主仓库流程
是的,如果小伙伴们长期向社区提交文章的 pull request ,当然的会赢得大妈们的信任, 就可以列为仓库成员,直接对 zhgdg/zhgdg - GitCafe 进行操作了,
嘦在本地重新检出一下 zhgdg/zhgdg - GitCafe 而不用自个儿 分支出来的那个私人仓库, 那么发布文章就一步:
$ git push
所以,坚持贡献,最后总是能获得更多的信任,以及更加快捷的分享渠道 ;-)
总结
整体上:
[一次性]
+ gitcafe reg.
|
+ frok zhgdg
|
+ git clone U-FROK/zhgdg.git
| \
| +- 修订配置,使用https 协议+明文口令
| or
| +- ssh-keygen 生成本地密匙对,部署 SSH 公钥在 gitcafe
| 使用 git 协议,用 SSH 认证,进行无口令提交
|
+ git checkout gitcafe-pages
|
[日常的]
+- git add . 追加新文件
+- git commit -am ".."提交变更
|\ (有主仓库权限)
| +- git push 直接推送修订即可
|
| (没有主仓库权限, 以 pull request 流程发布)
+- git remote add upstream https://gitcafe.com/zhgdg/zhgdg.git
|
+- git fetch upstream
|
+- git rebase upstream/gitcafe-pages
|
`- git push 推送整理后的修订
到gitcafe 界面,发起 pull request,等待管理员接受,合并.
教训
在整个儿的探索/尝试过程中, 小言 也有一些的自然 Nive 理解,在此作为FAQ 提供给大家
Changelog
- 140910 大妈 SriLanka 回来检查作业,重构一次
- 140825 成功完成第一个 RP 合并,当然不是规范的
- 140820 提交第一个版本
- 140812 月例会,倡议每周一篇文章,小言认领了此篇
巡阅
- 150113 Zoom.Quiet checked
- 150115 [Jeremy] checked
声明: 本文采用 BY-NC-SA 授权。转载请注明转自: #ZHGDG#
以上...
加入 珠海GDG
- 注册 Meetup
- 关注 Zhuhai GDG
- 或扫描:
通过 珠海GDG 可以:
第一时间获知谷歌最新技术, 可以学到如何去谷歌平台上赚钱的思路和方法, 可以认识很多有可能将来一起走上自己创业道路的人, 可以学会把你的创新带向国际市场, 参加那里的活动有经常和国际上的开发者们进行交流的机会...
PS:
若无意外,题图都是从原文提取或是通过 Google 图片搜索出来的, 版权属左, 不负责任 ;-)
PPS:
珠海GDG 微信/Blog 欢迎投稿,只要追自认内容吻合以下条件:
0. 有趣 ~ 至少是自个儿有兴趣的领域吧... 1. 有料 ~ 至少有点儿原创的东西吧.. 2. 有种 ~ 至少不能是成功学吧!
有好物请及时通过邮件列表投稿成也:
[email protected]
(发空邮件到 [email protected] 即完成订阅)
微信公号
栏目设定:
G术图书 (gb:推荐好书,书无中外) D码点评 (dd:麻辣评点,善意满盈) G说公论 (gt:时评杂文,新旧不拘) 珠的自白(dm:大妈自述,每周一篇) 海选文章(hd:得要相信,大妈法眼)
总之, 请大家告诉大家, 珠海生活中的技术社区
都来订阅呗 ;-)
订阅方法
- 搜索微信号
GDG-ZhuHai
- 或查找公众号:
GDG珠海
- 或扫描:
GDG珠海 社区资源:
- 邮件列表: [email protected] (可发空邮件到 [email protected] 即完成订阅)
- 微信: GDG珠海
- 博客: 珠海GDG | GDG Livin ZhuHai Life;-)
大妈的多重宇宙 - YouTube
全新自媒体系列...科学幻想,读书,说故事...任何问题
随时邮件提问可也:[email protected]