HbGitHub

ishanshan edited this page Apr 28, 2018 · 22 revisions

简明 GitHub 练级攻略 | 安人集团

GitHub 是安人集团内部协同、文档管理工具,也是开智学堂课程常用的主题讨论、作业提交工具。它可供性极强,且内置很多专家级的内隐模式,如果使用得当,能极大降低个人创作、团队共创的的复杂度。

如果你初次接触,面对满屏难以理解的按钮,估计有些发怵;甚至查阅官方教程 GitHub GuidesGitHub Help,也依然满头雾水——里头各种操作不明觉厉,更别说对接上述俩场景啊。

别怕,没那么复杂。况且还有这份练级攻略,助你解决常见需求呢~

在那俩场景下,你只需把 GitHub 当成一个特殊的本地同步盘工具(类似 Dropbox 或坚果云,能把特定文件里的改动同步到云端)+ 主题讨论平台(类似论坛、BBS),就能应对大部分常规需求。更多高阶用法,可以先熟悉常用操作后,再按需取用。

一般来说,从初见 GitHub 到爱上 GitHub ,你会经历这三阶段:

各级别自学及自检指引可参考 安人集团协作技能自检清单(需科学上网才可访问),希望这系列攻略能助你更快如鱼得水,跃入三级 ;-)

在动身前,我需要给你一套行囊:

行前忠告

  • 使用新工具、接触新机制,不适应甚至痛苦一段时间是正常的。这个时间可能是 1-2 周甚至更久,请做好心理准备和生理准备——规律作息多运动,提升身体尤其大脑机能。
  • 遇到不懂的名词,请直接 Google 一下——这个习惯能让你无论学啥都能学得更快。一般翻阅搜索结果的 3-5 个页面,就能拨开不少脑中迷雾;-)
  • 进入一个页面,请先看一眼浏览器里的 URL ,看看它的结构 —— GitHub 产品架构优雅,凭页面 URL 你就能清晰判断现在在什么位置,不易迷失。当然,用非英文命名文件另当别论——如果文件名里出现非英文,这个文件 URL 会出现乱码,干扰对于当前位置的判断,而且 URL 很丑。
  • 多用关键词查找你想看的内容。在安人集团你会接触很多文档,且不少文档很长,比如这个。你想回看时,最好用关键词搜索以便快速定位,而非迷失于茫茫比特。
  • GitHub 蕴含很多专家级的内隐模式,学习曲线对你来说可能有点陡。但相信我,跨过后你将终身受益,发觉之前硬着头皮走出舒适区真是太明智:P

练级准备

攻略肯定不能只看不练对吧?——请完成下述准备后再翻攻略:

  1. 你已注册并登录自己的 GitHub 账号
  2. 你有可访问的仓库,可以自己新建一个测试仓库(Create A Repo - User Documentation),或 fork OpenMindClub/tacofancy 这个示例仓库来尝试

GitHub 世界的基本概念

踏入这个世界,你得先了解一些常用概念,比如常用界面、常用操作通常大伙儿如何描述。如此,出了问题,你才能准确描述、高效求助。要不出了问题都不知道用啥关键词搜索、跟别人描述,多闹心呐~

常用界面

来,先熟悉两个你接下来最常用的界面 repository & dashboard

repository

repository 是 GitHub 里最基础的元素,中文一般叫做「仓库」。 GitHub 是项目生发平台,一般来说,一个仓库就是一个项目资料的基本存储单位。比如你点击 https://github.com/OpenMindClub/tacofancy ,这就是这个项目仓库的首页。项目首页主要元素及作用如下:

hbgithub_repo_readme2.png

  • 1 GitHub logo: 点击直达 dashboard
  • 2 搜索框:可搜索本仓库所有内容,包括改动记录
  • 3 当前仓库全称
  • 4 code/issues/pull request/projects/wiki 导航栏
  • 5 commits 记录:点击即可查看本仓库历次改动记录。红色为这轮改动里删去的内容,绿色为这轮改动里新增的内容
  • 6 本仓库文件夹
  • 7 commit message:点击即可查看对应改动内容
  • 8 本仓库最后更新时间
  • 9 fork 按钮

(上述各英文什么意思在下文「高频操作」中可看到,具体如何使用,详见 「存活级别」攻略

仓库全称为 账号/仓库名 ,比如 OpenMindClub/tacofancysinker/tacofancy ,虽然仓库名相同都是 tacofancy ,但这是两个不同的仓库,OpenMindClub/tacofancyOpenMindClub 的仓库,sinker/tacofancysinker 的仓库。

在 GitHub 里,你可以创建个人项目,也可以创建团队项目。也就是说,你可以把仓库建在个人账号下,也可以建在团队账号(organization)下。且这俩账号的仓库可以相互转移,看仓库全称就能判断这个仓库属于谁。

仓库可以设置为 public(公开,所有人都可以查看)或 private(私有,有特定权限才可访问)。私有需要付费。若仓库名字后边有 private 标志,那就是私有库;你把这样的仓库发给别人,别人没有登录或没有访问权限,就会显示 404 。

仓库里还配套了相应项目协同模块,用法建议如下:

  • code: 一般用于存放项目主要成果

    比如公众号仓库,会在此放在编辑的和已发布文案;课程学员仓库,会在此放自己的作业、笔记;课程研发仓库,会在此放编写的卡包等。

    注意:每个仓库的免费存储空间为 100M ,所以幻灯、图片等多媒体资料,建议存放在云盘中而非 code 里。有钱也别把多媒体资料放这里,会阻碍协同成员的从同步速度。

  • wiki: 一般用于存放项目相关规约、指南等辅助资料

    wiki 其实同步到本地也是一个文件夹,和 code 的功能类似。但 wiki 模块右侧有 sidebar ,可以索引资料(包括但不限于本仓库内的资料),便于同伴取用。

    比如公众号仓库 wiki ,会汇总编辑手册、发布规约等常用资料;课程学员仓库 wiki ,会汇总课程表、学习指南等资料;课程研发仓库,则会汇总研发指南、协作教程等资料。

  • issue: 一般用于主题讨论、追踪议题

    界面样式有点类似论坛,功能特性见 Mastering Issues · GitHub Guides 。最大的好处是议题告一段落后可以关闭(close issue),以便保持主界面清爽。核心用法是持续追踪议题/任务,从发起、推进、解决到迭代等。

    例如你在 GitHub issues 发起了一个主题讨论,大家异步交流探讨。如果问题解决,你及时回复最新进展/共识到这个 issue 下,并关闭此 issue ,形成一个良性闭环。除了探讨疑问,你还可以用 GitHub issues 发起活动征集参与者;汇集资源,分享创意;提交 Bug……

  • project: 相当于看板(kanban),一个项目可以建好多张看板,还可以把 issue 引用到看板中

当然,你也可以根据特定项目需求及各模块的功能细节差异(需科学上网才可访问),自行决定如何使用这些模块。

友情提示:建议所有仓库同步到电脑本地的内容,都放在一个路径下,而非按不同主题放在不同路径。同步到本地的仓库越多,你会越发觉这样处理有多优雅。

dashboard

登录个人 GitHub 账号后,点击页面顶部菜单栏最左侧的 GitHub logo,即可进入 personal dashboard https://github.com/dashboard

Dashboard 页面是你 GitHub 的枢纽,由此你可以找到所有自己有访问权限的各类资源。你可以把 dashboard 想象成电梯里的按钮,通过它你可以直达你有权限的楼层(organization)及房间(repository),也能到对应楼层(organization)看看里头的动态(news feed),了解大伙儿都在做什么。

看过个人 dashboard ,细心的你一定发现,在页面右侧有你能访问的所有仓库列表。

再进入你所在 organization 的 dashboard 看看吧——

  • 点击左上角个人账号按钮:

    hbgithub_account_context_switcher.png

  • 切换到你想查看的 organization:

    hbgithub_account-context-switcher-selected-dotcom.png

  • 进入 dashboard 页面。页面主要元素如下:

    hbgithub_dashboard_org2.png

    • 1 搜索框:搜索当前 organization 下的内容
    • 2 dashboard 名字:说明现在你查看的是哪块 dashboard,比如是你自己的 dashboard,还是某个 organization 的 dashboard
    • 3 News Feed:当前 organization 或账号下的新动态
    • 4 News Feed/pull requests/issues 导航栏:点击可进入查看这些模块
    • 5 直达当前 organization 主页的入口
    • 6 当前 organization 仓库列表:你可以在此查找该 organization 下你有访问权限的仓库。列出来的仓库都是你有权限的,仓库名称有浅黄色背景的是私有库,白色背景的是公开库

注意:请一定记住如何进入 dashboard 页面,因为你会经常用到。 # 记不住就直接添加到收藏夹吧!

高频操作

再看一些高频操作:

  • fork: 可以一键创建项目副本。比如你看到某个项目特别好,但还想改改,就可以 fork 一份到自己的账号下,继续修改。改完后还可以申请合并到主库里。

    对了,fork 到自己账号后生成的仓库,我们一般称为 child repo ;被 fork 的仓库,称为 parent repo。

  • clone: 把云端仓库同步到本地。

  • commit: 标注说明你改了什么内容。

  • push: 把本地的改动同步到云端仓库。

  • pull: 把云端的改动同步到本地仓库。一般在修改团队的本地仓库前,最好先 pull 一下把本地内容更新成最新的,以免和别人发生版本冲突。

  • pull request: 修改了某个仓库后,跟仓库主人申请把改动合并到该仓库中。

  • merge: 合并不同版本的内容为一个可用版本。

以上概念更官方的解释,及更多 GitHub 概念,可见 GitHub Glossary - User Documentation。不过更建议你使用 GitHub 至少一周,对 GitHub 有更多直观的感知后别再查看哦。


好,大致了解 GitHub 世界有啥,真刀实枪的时候到了。系好裤腰带,咱们要冲出舒适区啦——

CHANGELOG

  • 180425 闪闪根据内测反馈修订
  • 180424 闪闪更新图片
  • 180420 闪闪增补相关链接和图片
  • 180418 闪闪创建
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.