前段时间有幸参与了开源社区的活动,并且借由 Apache Pulsar 项目实践了 GitHub + MarkDown 的文档开发。在与开源社区的童鞋进行交流的过程中了解到,对于非技术专业的TCer,即便对于社区贡献具有热情,但往往会被看似复杂的工具和流程“劝退”。那么在这里,我会基于个人的实践与体验,分享一下自认为“最简”的操作说明。

在本文中,会按照以下顺序进行介绍:

  1. 整体流程及难点说明:概览整体流程,并且指出操作难点。

  2. 预备知识和准备工作:在部署和使用 GitHub + MarkDown 进行文档开发的过程中,需要掌握的基础知识,及准备工作。

  3. 操作界面说明:整体流程涉及的操作界面简介。

  4. 工作环境部署说明:将本地电脑部署为参与开源项目的终端。通常,在项目存续过程中,工作环境仅需部署一次;如工作环境损坏,可直接删除本地文件后,进行重新部署。

  5. 日常工作流程说明:在工作环境已部署的情况下,每一轮修改,都需要完整执行日常工作流程,实现闭环。

那么接下来,就让我们具体看看。

整体流程及难点说明

整体流程

从整体来看,使用 GitHub + MarkDown 参与开源项目主要包括以下步骤:

图片说明:

  • 实线:操作步骤及数据方向。

  • 序号:操作步骤。

  • 虚线上方:GitHub 云端操作。

  • 虚线下方:本地操作。

  • 虚线切割:线上/线下传输操作。

  1. fork:创建备份,将 apache/pulsar 目录复制为个人  <user>/pulsar 目录。后续针 pulsar 项目的修改基于个人目录实施。

  2. clone:复制个人 <user>/pulsar 目录的项目文件下载到本地。

  3. fetch upstream:建立本地文件与 apache/pulsar 的同步更新,确保后续使用最新版本文件进行修改。

  4. branch:创建修改分支。

  5. edit:使用编辑工具修改文件内容。

  6. commit:文件修改完成后,提交文件。

  7. push:上传文件至个人 <user>/pulsar 目录。

  8. pull request:提交修改 PR 至 apache/pulsar,待确认无误后合入 apache/pulsar。

其中:1~3为工作环境部署;4~8为修改流程。后续将在“工作环境部署说明”和“日常工作流程说明”2个部分进行详细说明。

难点说明

  1. 工作环境部署涉及较多命令行操作,对于非技术用户可能不是特别友好,如果有条件,不妨请技术小伙伴协助完成;不过如果尝试独立完成,一定会获得满满的成就感,相信你可以的。

  2. 在日常工作中,需要特别注意文件的版本控制,避免在提交 pull request 时,出现混淆。具体说明参见:日常工作流程说明 > 1. branch

预备知识和准备工作

在进行后续操作说明时涉及以下内容,但不会展开说明,需要大家预先了解。

1. 在进行工作环境部署时,涉及命令行操作。需了解:

  • 如何调出命令行对话框。

  • 如何使用 DOS 命令定位至指定目录。相关命令包括:cd, cd.., cd\, <盘符>, cd <目录>,dir

2. 注册 GitHub 用户。

链接:https://github.com/join

3. 安装 GitHub 桌面版。

链接:https://desktop.github.com/

操作界面说明

在所有操作过程中,涉及以下三种界面:

  • GitHub 的 Web 页面:用于 GitHub 云端操作。例如:fork、pull request 等。

  • 命令行页面:推荐用于工作环境部署。

  • GitHub 桌面版:推荐用于日常工作流程。

GitHub 的 Web 页面

命令行页面

GitHub 桌面版

准备好了吗?下面我们就要正式进入操作流程了,祝你好运!

工作环境部署说明

工作环境部署操作包括:

  1. fork:创建备份,将 apache/pulsar 目录复制为个人  <user>/pulsar 目录。后续针对 pulsar 项目的修改基于个人目录实施。

  2. clone:复制个人 <user>/pulsar 目录的项目文件下载到本地。

  3. fetch upstream:建立本地文件与 apache/pulsar 的同步更新,确保后续使用最新版本文件进行修改。

1. fork

操作界面:GitHub 的 Web 页面

1) 访问 apache/pulsar 项目页面:
          链接:https://github.com/apache/pulsar

2) 点击 fork 按钮。

fork 操作完成后, apache/pulsar 和 <user>/pulsar 被加入至本人的 Repositories 表。

2. clone

操作界面:GitHub 桌面版

1) 点击 Current repository > Add > Clone repository,打开 Clone a repository 对话框。

2) 在 Clone a repository 对话框:
          指定 Your repository 为 <user>/pulsar;
          指定 Local path 为指定本地目录;
          点击 Clone 按钮。

clone 操作完成后,<user>/pulsar 的项目文件下载至本地指定目录。

3. fetch upstream

操作界面:命令行

1) 调出系统命令行操作界面。

说明:由于不同系统调出系统命令行操作界面的方法不同,请自行搜索解决。本文以 Window 10 操作系统为例:

点击“开始” > “搜索”按钮;

搜索“cmd”,打开“命令提示符”窗口。

2) 使用 DOS 命令定位至工作目录路径。例如:

D:\myFolder\PULSAR\Repository\pulsar>

3) 在工作路径下,依次执行以下命令:

#设置本地文件与 apache/pulsar 同步#
git remote add upstream https://github.com/apache/pulsar.git#验证同步设置#
git remote -v#正确返回信息#
origin    https://github.com/$user/pulsar.git (fetch)
origin    https://github.com/$user/pulsar.git (push)
upstream  https://github.com/apache/pulsar (fetch)
upstream  https://github.com/apache/pulsar (push)#设置本地master分支同步#
git checkout master
git fetch upstream
git rebase upstream/master
git push origin master

祝贺你,你已经成功完成了本地工作环境部署。

日常工作流程说明

每次实施修改,都要按照日常工作流程操作闭环,具体内容包括:

  1. branch:创建修改分支。
    注意:
    1) 一个 issue 对应一个 branch。
    2) 每次修改必须创建修改分支,不可在 master 分支上直接实施修改。

  2. edit:使用编辑工具修改文件内容。

  3. commit:文件修改完成后,提交文件。
    注意:提交文件时,需确认提交到正确的修改分支。

  4. push:上传文件至个人 <user>/pulsar 目录。

  5. pull request:提交修改 PR 至 apache/pulsar,待确认无误后合入 apache/pulsar。

日常工作流程推荐非技术用户使用 GitHub 桌面版进行操作,更加友好易用,让我们来看看吧。

1. branch

1)设置 Current repository 为 <user>/pulsar;

2)点击 Current branch > New branch,打开 Create a branch 对话框。

3)在 Create a branch 对话框:

输入修改分支的名称,例如:wldtest;

指定修改分支基于的分支,默认为 master;

点击 Create branch。

branch 操作完成后,点击 Current branch,从列表中查询并切换至新建分支。

2. edit

打开已下载至本地的工作目录,使用适当的 MarkDown 工具,编辑项目文件。文件修改后,GitHub 桌面版自动识别并显示变更。

3. commit

确认修改无误后,填写变更说明,点击 Commit to <branch name>,提交本轮修改。

注意:提交文件时,需确认提交到正确的修改分支。

4. push

最后点击 push origin,将文件上传到 GitHub 的个人 <user>/pulsar。

5. pull request

点击 Create Pull Request,跳转到 GitHub 的 Web 页面,填写相关内容。

在 Pull Request 页面,细心如你一定注意到系统自动添加了下面这条合并信息,即请求由 <user>/pulsar 的修改分支,合并到 apache/pulsar 的 master 分支。一旦修改内容确认无误,就成功完成本轮贡献了。

现在,你已经成为一名开源项目的 Contributor,给自己一些掌声吧。

在多人团队开发过程中,良好的工作环境和工作流程(项目管理),有利于进行高效协作。付出额外的学习成本,掌握相关工具和流程是非常有必要的。如果这篇文章恰好能够解决你的困惑,让你的学习过程变得容易了一点点,那就太好了。


相关文章:

实施:UI国际化的坑,都踩明白了吗 | 技术传播

实施:Word样式协同共享,降低文档开发成本 | 技术传播

实施:同源下发,保证内容一致性 | 技术传播

其他推荐:

企业级信息管理系统初创方案构思 | 技术传播

技术传播是一片蓝海 | 技术传播

访谈:TC无处不在,只是我们没有发觉 | 技术传播

这次他们说好要“讲真的” | 传播

在座都别吵了,你们还有我 | 技术传播

一本培养强迫症患者的说明书 | 技术传播

就像用心做好日本料理 | 技术传播

顽固的老头子与无聊的说明书 | 技术传播

转战新媒体 | 技术传播

评测:王者荣耀的用户帮助系统 | 技术传播

让爸爸妈妈也能享受到科技发展带来的便利 | 技术传播

公众号:techcomm / htstory

微信号:bgrichi

邮箱:hash_0813@163.com

实施:GitHub + MarkDown 文档系统的工作环境部署及工作流程说明 | 技术传播相关推荐

  1. python 知识管理系统_MrDoc: 基于Python开发的Markdown在线文档系统,适合作为个人和小型团队的文档、笔记和知识管理工具...

    MrDoc觅道文档 - 记录文档.汇聚思想 个人和小型团队的笔记.文档.知识管理私有化部署方案 简介 MrDoc 是基于Python开发的在线文档系统,适合作为个人和小型团队的文档.知识和笔记管理工具 ...

  2. 一文搭建Vuepress博客/文档系统:搭建,导出,SEO,自动编译和部署,域名,HTTPS,备案等

    本文纯原创,搭建后的博客/文档网站可以参考: Java 全栈知识体系.如需转载请说明原处. 文章内容目录 文章内容目录 第一部分 - 博客/文档系统的搭建 博客/文档搭建前言 有哪些选择 我做了哪些尝 ...

  3. 一文搭建自己博客/文档系统:搭建,自动编译和部署,域名,HTTPS,备案等

    本文纯原创,搭建后的博客/文档网站可以参考: Java 全栈知识体系.如需转载请说明原处. 文章内容目录 第一部分 - 博客/文档系统的搭建 博客/文档搭建前言 有哪些选择 我做了哪些尝试 自己写:我 ...

  4. 利用amWiki轻松打造知识库或技术文档系统

    利用amWiki轻松打造知识库或技术文档系统 1. 我为什么选择amWiki 1.1. 用什么来写? 1.2. 用什么系统? 1.3. amWiki的优点 1.4. amWiki的架构 2. 如何使用 ...

  5. php编写文件管理工具,php之markdown文档管理工具的实现代码

    本文主要和大家分享php之markdown文档管理工具的实现代码,希望能帮助到大家. 主要目标: 1.可以多人编辑 2.可以在浏览器中查看 3.有一个可以折叠的目录 4.支持多级目录 5.支持mark ...

  6. Sphinx+gitee+Read the Docs搭建在线文档系统

    本文介绍一种在线文档系统的搭建,需要借助Sphinx.gitee和Read the Docs. Sphinx是一个功能强大的文档生成器,具有许多用于编写技术文档的强大功能 gitee是一种版本管理系统 ...

  7. linux 如何查看终端格式,你应该还不知道,Linux终端下的 Markdown 文档查看器

    原标题:你应该还不知道,Linux终端下的 Markdown 文档查看器 现在,Markdown 差不多已经成为技术文档的标准.它可以实现技术文档的快捷写作,以及输出发布.同样都是标记语言,但Mark ...

  8. C#解析Markdown文档,实现替换图片链接操作

    前言 又是好久没写博客了 其实也不是没写,是最近在「做一个博客」,从2月21日开始,大概一个多星期的时间,疯狂刷进度,边写代码边写了一整系列的博客开发笔记,目前为止已经写了16篇了,然后上3月之后工作 ...

  9. linux文档查看器翻译,mdv – Linux终端下的 Markdown 文档查看器

    现在,Markdown 差不多已经成为技术文档的标准.它可以实现技术文档的快捷写作,以及输出发布.同样都是标记语言,但Markdown 文档相比HTML更加简单.一是体现在标记符的数量上,二是体现在标 ...

最新文章

  1. Github免费中文书《Go入门指南》,带你从零学Go | 极客头条
  2. 算法--------最长连续序列(Java版本)
  3. 简单的 HTTP 调用,为什么时延这么大?
  4. python怎样画立体图形-用python来画出高光谱遥感影像的3D立体图
  5. Linux下编译带x264的ffmpeg的方法
  6. 强化学习-动态规划_强化学习-第5部分
  7. hello,你知道获取元素有哪几种方式吗?
  8. LeetCode 3_Longest Substring Without Repeating Characters
  9. BGP——路由抖动惩罚机制(讲解+配置)
  10. JS+CSS打造随屏幕滚动的quick快速导航代码
  11. this 的4种绑定机制
  12. Linux上 MongoDB 实现远程连接并设置账号密码
  13. 熬了三个通宵的CV学习心法!我开眼了!
  14. Java集合框架学习总结
  15. NSString+NSMutableString+NSValue+NSAraay用法汇总
  16. 微信消息自动回复并汇总
  17. 层次分析法php,使用层次分析法,需要求矩阵的最大特征根入max
  18. Java面试知识点汇总
  19. 详解区块链P2P网络
  20. 三只松鼠2020新财报:利润下滑都是疫情的锅?

热门文章

  1. pytorch 问题:_, term_width = os.popen(‘stty size‘, ‘r‘).read().split()
  2. Portapack应用开发教程(十一) 加入内置麦克风
  3. 小学生学计算机flash,利用Flash软件进行小学电脑绘画教学
  4. Django 中引入bootstrap的方法
  5. AI人工智能可以做哪些课题的毕业设计毕设
  6. 数据和安全②HTTPS单向和双向认证
  7. c++实现atoi()和itoa()函数(字符串和整数转化)
  8. usnews美国大学计算机排名2021,2021年USNEWS美国大学计算机
  9. SpringBoot 整合Smart-doc生成接口文档
  10. JDK14打包工具jpackage的使用