P031.狮友圈运行手册
向几个狮友发出了邀请,是时候补齐一些手册了。 运行(非运营)手册,主要说狮友圈是咋协作的。
@史荣久 / 2015-08-15 / CC-BY-SA-3.0
缘分加自愿
关于攻城狮朋友圈,我在前面已经神叨了好些篇了。 它既然叫「朋友圈」,自然就不是组织,不是负担。 贡献者,可以在任何时候,可以分享任何话题。
大家聚在一起,而不成为人堆,自然是认同某些东西, 而这个东西,我暂且称之为「攻城狮精神」。
狮友圈采用「缘分加自愿」,是两次握手。
第一次,是甲向乙发出邀请
或申请
,然后乙同意
。
第二次,是贡献者在狮友圈分享话题,然后获得编号
。
加入狮友圈有两个条件:一个是自愿分享,重在自愿。 一个有某种自己动手,天天向上的「攻城狮精神」。
Github协作
狮友圈的成品在 http://www.moilioncircle.com , 其生产工厂在 https://github.com/moilioncircle 。
和狮友圈协作直接相关的有以下3个:
- moilioncircle.github.com 官网
- moilioncircle.product 每期分享用到的素材。
- moilioncircle.publish 狮友圈历史和资源。
其协作流程大概如下图所示:
- 实线箭头,表示动作的方向。
- 虚线箭头,表示commit的存在。
- 黄圈箭头,表示git历史关系(参考git-scm)。
此图中步骤所对应的git参考手册如下:
第一步,把狮友圈的repository fork
到自己的名下。
在 https://github.com/moilioncircle 页面找到
moilioncircle.github.com 和 moilioncircle.product,
分别进入并点击右上角的Fork
,就可以了。
第二步,把上步fork
到自己名下的库clone
到本地。
# 替换成自己的URL
git clone https://github.com/your-name/XXX
# 添加攻城狮库,命名为upstream
git remote add upstream https://github.com/moilioncircle/XXX
# 查看本地git的remote
git remote -v
# 大概得到如下输出
origin https://github.com/trydofor/XXX (fetch)
origin https://github.com/trydofor/XXX (push)
upstream https://github.com/moilioncircle/XXX (fetch)
upstream https://github.com/moilioncircle/XXX (push)
第三步,本地 commit
,图中在X之上先后有A,B两次提交。
git checkout master # 本地分支
git status # 查看状态
git commit -m 'comment' # 提交
git gui # 以gui形式操作
第四步,把狮友圈的内容fetch
到本地,此时upstream以存在R提交。
# 如果没有冲突,可以这样,直接在upstream上重播master的提交
git pull --rebase upstream master
# 但推荐这样,然后手动合并。
git fetch upstream
第五步,衍合(rebase
)R和合并(squash
)A和B。
# 在upstream的上重播本地提交。同`pull --rebase`。
git rebase upstream/master
# 合并提交A和B为一个提交,包含A和B的内容
# 查看log,找到A的父提交X
git log --oneline # 越上面越新
6d4e4be B
a5dde93 A
d702c29 X
git rebase -i d702c29 #越下面越新
# 把 B提交前面的pick改成squash即可,保存,填写提交日志。
pick a5dde93 A
squash 6d4e4be B
# 如果放弃,清空所有内容,保存。
第六步,push到自己的仓库origin。
# --force 回强制覆盖远程服务器内容
git push --force origin master
# 一般不用 --force
git push origin master
第七步,在自己的github仓库页面,点击pull requesets
。
第八步,所有贡献者,会投票,决定是否merge,并分配编号
。
如果,你本地或者github的git失控了怎么办? 可以reset
。
# backup uncommited files first !!
git reset --hard 1a0c328a3afece6a460842dcc357cfe46f0ef529
git pull --rebase upstream master
git push origin master --force
# copy backup files to this reset-repository
git commit -a -m "new commit"
git push origin master
自组织分享
狮友圈官网,使用的是git page提供的静态博客功能。 需要在本机安装jekyll环境,以ubuntu 14.04为例。
sudo apt-get install git
sudo apt-get install ruby-full
sudo apt-get install nodejs
sudo gem install jekyll
sudo gem install jekyll-sitemap
cd moilioncircle.github.com #你本地的目录
# 修改 `_config.yml` 切换注释,变成以下内容。
url: http://127.0.0.1:4000
url: http://www.moilioncircle.com # 注释掉
# 启动本地服务器,访问本机4000端口就可
jekyll server
所有以下举例,都是在本地git上进行的,此时并没有狮友圈的统一编号。 贡献者可以不使用编号或随意使用编号进行PR,待狮友圈分配编号后, 再squash此PR即可。所有对PR的讨论,都将在PR的回复中进行。
(A)新增贡献者,需要自己建立作者信息。
_data/authors.yml
按格式追加自己的信息。
images/user/
添加头像120x120,和信息路径一致。
(B)发布图文,需要建立对应的博客。
_posts/actions
爱可深思 动手操作为主
_posts/manshow
闷骚闷秀 各类博客
_posts/publish
爬步历史 狮友圈建设相关
_posts/release
锐力易思 视频分享
与其对应的有 images/post
目录。
封面图片尺寸400x250,有小故事的或小知识的。
如果图文配有多图,使用文件夹(序号命名)。
rawpage
中放置的是静态页面内容
图片,建议jgp或png(注意都小写)。文件名,全小写英数(含-_.)。
图文格式为markdown
,扩展名为.md
,其内容解释如下:
category: publish <= 分类,目前有如上4类。
author: shi.rongjiu <= 作者,同authors.yml一致。
title: 000.狮友圈运行手册 <= 文章标题,10字左右。
excerpt: 向几个狮友发出了邀请... <= 文章摘要,两行即可。
tags: [手册, github, markdonw, 图文, 视频] <= 文章标签
teaser: post/publish/000.jpg <= 文章封面
teaserinfo: 2014年12月... <= 封面故事
modified: <= 修改时间,可选。
以上内容是jekyll显示需要的,文章正文照猫画虎或自由发挥。
(C)发布视频,建议(非强制)统一标识。
视频开头和结尾,报个门户,关键词包括: 围观,攻城狮,攻城狮朋友圈和贡献者名字。例如
大家好,欢迎围观攻城狮朋友圈。
我是阿九,今天为大家分享的是:
...
今天就为大家分享到这里,感谢您的围观。
我是阿九,我们是攻城狮,我们下次再见。
此外,攻城狮还有技能和口号。
不等,不靠,有囧,有料。攻城狮建造世界。
终日乾乾,或跃在渊。
视频中增加攻城狮朋友圈的Logo或二维码等标识。
这些标识位于 moilioncircle.publish
,
例如/proc/ads/狮友圈/
录制好的原始视频,需要放到网盘,并分享给狮友圈。 狮友圈再将视频上传至其他视频平台,进行发布。
—- 2015-08-17 内容补充 —-
分享视频比图文要麻烦,各平台还有审批,可能会导致申诉或返工。
待上传到视频平台后,需要把对应的URL,更新到观看视频
位置。
这些都完毕,一个PR才算完成,然后进行merge
实际操作中,可以预先领号,然后直接commit,PR,不用再次麻烦。