layout: post title: 手把手教你用git发布blog author: snowy categories: Howto tags: gdg howto snowy
是的社区的 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 的多种操作建议认真参考:
我们的社区文章仓库也一样,和当前 小言 自个儿的私人分支仓库的关系, 决定了,小言的文章想最终发布到官方网站 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 月例会,倡议每周一篇文章,小言认领了此篇
以上...
码不停提马上无虫 ;-)
|_|0|_| |_|_|0| |0|0|0|
加入 珠海GDG
- 注册 G+
- 关注 GDG Zhuhai
- 成为 GDG Zhuha开发者
通过 珠海GDG 可以:
第一时间获知谷歌最新的技术, 可以学到如何去谷歌平台上赚钱的思路和方法, 可以认识很多有可能将来一起走上自己创业道路的人, 可以学会把你的创新带向国际市场, 参加那里的活动有经常和国际上的开发者们进行交流的机会...
PS:
若无意外,题图都是从原文提取或是通过 Google 图片搜索出来的, 版权属左, 不负责任 ;-)
PPS:
珠海GDG wechat/Blog 都是欢迎投稿的,只要追认内容吻合以下条件:
0. 有趣 ~ 至少是自个儿有兴趣的领域吧... 1. 有料 ~ 至少有点儿原创的东西吧.. 2. 有种 ~ 至少不能是成功学吧!
有好物的,及时向大妈们吼: [email protected]
微信栏目
当前应该是:
G术图书 (gb:推荐好书,书无中外) D码点评 (dd:麻辣评点,善意满盈) G说公论 (gt:时评杂文,新旧不拘) 珠的自白(dm:大妈自述,每周一篇) 海选文章(hd:得要相信,大妈法眼)
总之! 珠海的组委大妈们,决定开始坚持发文,方方面面细细同大家分享/交流
总之! 请大家告诉大家, 珠海生活中的技术社区
已经认真回归 微信,都来订阅吧!
订阅方法
- 搜索微信号
GDG-ZhuHai
- 或查找公众号:
GDG珠海
- 或扫描:
GDG珠海 社区资源:
- 邮件列表: [email protected] (可发空邮件到 [email protected] 即完成订阅)
- 微博: @GDG珠海
- 微信: GDG珠海
- G+ 主页: GDG ZhuHai
- G+ 社群: ZhuHai GDG
Author: /mail / gittip / github