Github入门与实践原创
# GitHub提供的主要功能
# issue
Issue功能,是将一个任务或问题分配给一个Issue进行追踪和管理的功能。可以像BUG管理系统或TIDD ( Ticket driven Development)的 Ticket一样使用。 在GiHub 上,每当进行我们 即将讲解的Pull Request,都会同时创建一个 Issue。
每一个功能更改或修正都对应一个 Issue,讨论或修正都以这个Issue为中心进行。只要查看Issue就能知道和这个更改相关的一切信息,并以此进行管理。
在Git的提交信息中写上Issue的ID (例如“#7"” ),GitHub 就会自动生成从Issue到对应提交的链接。另外,只要按照特定的格式描述提交信息,还可以关闭Issue。
# wiki
通过Wiki功能,任何人都能随时对一篇文章进行更改并保存,因此可以多人共同完成一篇文章。该功能常用在开发文档或手册的编写中。语法方面,可以通过GFM语法进行书写。Wiki页也是作为Git仓库进行管理的,改版的历史记录会被切实保存下来,使用者可以放心改写。由于其支持克隆至本地进行编辑,所以程序员使用时可以不必开启浏览器。
# pull request
开发者向GitHub的仓库推送更改或功能添加后,可以通过Pull Request功能向别人的仓库提出申请,请求对方合并。 Pull Request送出后,目标仓库的管理者等人将能够查看Pull Request的内容及其中包含的代码更改。 同时,GitHhub还提供了对Pll Request和源代码前后差别进行讨论的功能,通过此功能,可以以行为单位对源代码添加评论,让程序员之间可以高效的交流。
# 实际动手使用
# 仓库的创建及部署
# repository name
输入仓库的名称
# description
设置仓库的说明(非必填)
# initialize this repository with a README
再次选项下打钩,随后自动初始化仓库并设置README文件,用户可以直接clone这个仓库,如果想向GitHub添加手中已有的git仓库,建议不要勾选,直接手动push
# add .git ignore
该文件用来描述git仓库中不需要管理的文件与目录。您可以在存储库的根目录中创建一个.gitignore文件,以告诉 Git 在您提交时忽略哪些文件和目录。要与克隆存储库的其他用户共享忽略规则,请将.gitignore文件提交到您的存储库。
这个设定会帮我们把不需要在Git仓库中进行版本管理的文件记录在gitignore 文件中,通过它可以在初始化时自动生成gitignore 文件,省去了每次根据框架进行设置的麻烦。下拉菜单中包含了主要的语言及框架,选择今后将要使用的即可。由于我们并不经常使用该功能,所以不做选择。
# add a licence
右侧的下拉菜单可以选择要添加的许可协议文件。如果这个仓库中包含的代码已经确定了许可协议,那么请在这里进行选择。随后将自动 生成包含许可协议内容的LICENSE文件,用来表明该仓库内容的许可协议。输人选择都完成后,点击Create repository按钮,完成仓库的创建。
# url
这个URL便是刚刚创建的仓库的页面。 https://github.com/username/repositoryname
# README.md
README md在初始化时已经生成好了。README.md文件的内容会自动显示在仓库的首页当中。因此,人们一般会在这个文件中标明本仓库所包含的软件的概要、使用流程、许可协议等信息。如果使用Markdown语法进行描述,还可以添加标记,提高可读性。
# 详细解说GitHub的功能
# 快捷键
shift+/
显示快捷键一览表
# 工具栏
# Pull requests
显示用户已进行的Pull Request。通过这里,开发者可以很方便的追踪Pull Request的后续情况。
# Issues
在这里可以查看用户拥有权限的仓库或者分配给自己的Issue。当用户同时进行多个项目时,可以在这里一并查看Issue。
# Marktplace
# Explore
这里将从各个角度介绍GitHub上的热门软件(附开发者制作的视频)。我们可以按语言筛选本日/周/月的各语言的顶尖代码库,在这里有机会了解到最尖端的技术和软件。
# notificationgs
用于提示用户是否有新的通知。用户在新建issue、被评论、进行pull request等时都会收到通知,用户在GitHub收到通知会同时发送到该用户的注册邮箱。
# create a new...
new respository
import repository
new gist
new organization
new project
创建新的git仓库或者organization,向organization添加成员、小组、仓库,为仓库添加Issue或collaborator等操作的菜单都聚集在这里。显示内容会根据当前页面不同而改变。
# 控制面板
# All activity
显示目前已Follow的用户和已Watch的项目的活动信息,用户可以在这里查看最新动向。
# repositories
# Explore repositories
# 个人信息
# 用户信息
这里显示注册用户的基本信息,包括姓名、所属公司、邮箱地址、已加入的Organization等。如果对该用户感兴趣,可以点击Follow。
# Popular repositories(pinned)
显示公开仓库中最受欢迎的、拥有大量Star的部分热门仓库。
# Contribution activity
按时间顺序显示具体活动的链接
# Repositories
显示该用户公开的仓库。Fork来的仓库也显示在这里。
仓库名称、简要说明、使用的语言、最终更新日期都会出现在列表中。星形图案旁边的数字表示给这个仓库添加star的人数,再旁边是被
这个仓库的更新频率。横向为时间轴,右侧为最新时间。色块越高,该仓库的更新频率越高。
# 仓库
# 用户名/仓库名
左上角图标旁边显示的是用户名和仓库名。斜线左侧为用户名。使用GitHub的组织账户时,这部分则为组织名。 斜线右侧是仓库名。
# Watch/Star/Fork
眼睛图标旁边写着Watch 字样。点击这个按钮就可以Watch该仓库,今后该仓库的更新信息会显示在用户的公开活动中。Star 旁边的数字表示给这个仓库添加Star的人数。这个数越高,代表该仓库越受关注。
Watch与Star有所不同,Watch 之后该仓库的相关信息会在后述的Nofifications 中显示,让用户可以追踪仓库的内容,而Star更像是书签,让用户将来可以在Star标记的列表中找到该仓库。另外,Star数还是GitHub上判断仓库热门程度的指标之一。
旁边的分叉图标是Fork按钮。后面的数字代表该仓库被Fork至各用户仓库的次数。这个数字越大,表示参与这个仓库开发的人越多。
# code
显示该仓库中的文件列表。仓库名下方是该仓库的简单说明和URL。
# Pull Requests
Pull Requests是用户修改代码后向对方仓库发送采纳请求的功能。在pull request页面能够列表查看当前处于open状态的pull request。通过点击页面左部和上部的选项进行筛选和重新排列。在列表中点击特定的pull request就会进入详细界面,页面上显示着这次是从那个分支向谁的哪个分支发送了pull request。
# Issue
用于BUG报告、功能添加、方向性讨论等,将这些以Issue形式进行管理。PullRequest时也会创建Issue。旁边显示的数字是当前处于Open状态的Issue数。
在软件开发过程中,开发者为了跟踪bug及进行软件相关讨论,进而方便管理,创建了Issue。在遇到以下几种情况时,我们可以使用这个功能。
- 发现软件的bug并报告
- 有事想向作者询问、探讨
- 事先列出今后准备实施的任务
# Actions
显示该仓库最近的活动信息。了解该仓库中的软件是无人问津,还是再火热的开发之中。
# Wiki
页面描述功能。用于记录开发者之间应该共享的信息或软件文档。
# Gist
Gist是一款简单的 Web应用程序,常被开发者们用来共享示例代码和错误信息。开发者在线交流时难免会涉及软件日志的内容,但直接发送日志会占据很大的篇幅,给交流带来不便。这种情况下,我们更习惯把日志粘贴到Gist,然后将URL发送给对方。
此外,Gist 还可以用在如下场合。
- 代替记事本记录简短代码段
- 给对方发送示例代码
使用Gist处理这类情况可以省去不少麻烦。
Gist主要用于管理及发布一些没必要保存在仓库中的代码,比如小的代码片段等。我们可以将一些随便写的脚本代码等放在Gist中。系统会自动管理更新历史,并提供fork功能。并且,通过gist还可以很方便的为同事编写代码示例。
在gist上添加代码示例可以嵌入博客中,如果选择语言,还会自动添加语法高亮。
# Gist 的特点
Gist最大的特点是可以与其他人轻松分享示例代码。它使用JavaScript编写的Ace编辑器,只需打开浏览器便可编写简单代码。
另外,Gist 中的文档都在版本管理系统的管理之下,用户可以放心编辑。而且由于其版本历史记录保管在Git仓库中,所以还可以通过clone操作将Gist获取至本地。共享Gist的人之间能够互相添加评论,所有交流都会被记录下来。
Gist支持多种语言的语法高亮,可以大幅增强代码可读性。可以说,这一工具就是专为程序员设计的。
# 创建Gist
下面我们通过实际演示为各位讲解Gist。各位可以登录GitHub后点击上部菜单中的Gist或者直接访问Gist的URL。随后我们可以看到
# UI讲解
接下来我们就各个项目分别进行讲解。
# Gist description...
头像右侧的这个文本框用来对当前Gist所包含的文件进行简要的说明。说明内容应尽量简明扼要,让自己一看就知道是什么。当然,阅览者也能看到这里的信息。
此项目并不是必填项,所以如果内容没有值得说明的地方,这项大可不必填写。
# name this file...
这一项可供用户指定文件名。系统能够自动识别扩展名,将右侧的语言自动设置为对应种类。比如我们输人"hello_gist.rb“,语言会自动设置为ruby。 此选项不是必填项,缺省状态下会以“gistfilel.扩展名”的形式自动分配名称。
# language
这里可以给要创建的文件选择编程语言。如果前面没有指定文件名那么缺省名称的打展名将以这个设置为准。另外,文件中的代码会 按照这里设置的语言进行语法高亮。
下拉菜单中可以搜索语言,各位请选择适当的语言进行设置以提高可读性。
如果不更改设置,则文件默认为文本格式。
# ACE Editor
该复选框可以指定Ace是否有效。没有特殊情况还是建议各位设置为有效。这样一来,录入文件内容时就可以像普通编辑器样进行插入tab等操作了。 右侧是缩进的设置,可以选择用空格缩进还是Tab缩进。再右边是选择缩进幅度的下拉菜单。
# 文件
这个文本框用来编辑文件的内容,可以手动编写也可以从剪贴板粘贴。与我们常用的编辑器或IDE相同,这里的文件内容会根据所选语言 即时语法高亮。
Gist可以将Markdown语法的标题以及编程语言的方法或函数折叠起来,以大纲形式显示内容。
# Add another File
一个Gist中可以包含多个文件。点击这个按钮可以在下方添加新的文件信息录人框,供用户添加更多文件。
# Create. Secret Gist
通过这个按钮创建的Gist不会被公开,只有知道其URL的人可以阅览相关内容,使用这个方法能保证Gist只与特定儿人共享。不过,此Gis的URL一定要妥善保管。
# Create Public Gist
以当前内容创建Gist.在Discover Gists上:也可以看到创建好的Gist。
每个Gist在创建时都会被自动分配一个URL。
我们可以通过这一URI 与其他开发者共享该Gist。
# 查看Gist
这节我们将从Gist读者的角度出发进行讲解。
登录Github后可以在Gist中添加评论。当然也可以对自己的Gist进行编辑。
# Gist的菜单
Gist页菜单的右侧部分有两种模式,在自己的Gist下与其他人的Gist下显示的内容有所不同。
在自己的Gist中有Edit(编辑)和Delete (删除)按钮。
在两者共有的Advanced Options中,可以通过Report as Abuse来举报不良的Gist内容。将Gist标记为Star后,可以在Your Gists的Starred页快速找到这一Gist。
在其他人的Gist下有Fork 按钮,用户可以根据其他人的Gist创建自己的Gist。但是这个Fork与GitHub不同,不可以进行Pull Request。
下面我们就Gist的每个页面进行讲解。
# Gist Detail
访问Gist的URL时会显示这个页面。在这里可以查看Gist的文件内容以及评论等详细信息。
# Revisions
可以查看Gist的变更历史记录及差别。
# Download Gist
将Gist以tar.gz格式下载。
# Clone this gist
显示clone所需的路径。如果是自己的Gist,在本地编辑后还可以进行push等操作。
# Embed this gist
显示将Gist分享至博客时所需的HTML。各位想在博客上分享语法高亮的代码时可以利用这一-功能。
# Link to this gist
显示当前Gist的URL。分享Gist时可以直接将这个URL告诉对方。
# 文件的菜单
各文件上方都有菜单,从左至右依次是文件么,指定的语言种类,永久链接,raw 的链接。如果想将Gist中的一个文件桃 指取到本地,使用永久链接会比较便捷。
# Your Gists
点击Gist首页右上角的Your Gists按钮或者直接访问URL都可以进入Your Gists页面。在这里可以查看自己的Gist列表。
左侧菜单的Forked选项中显示通过Fork创建的Gist Starred 选项中显示已经标记Star的Gist。文字右侧的数字代表每类中 Gist的数量。
本部分中我们对Gist进行了讲解。通过这款应用,我们可以轻松共享笔记、错误信息以及一些没必要 放人仓库的代码片段。各位不妨在日常中多加利用,与其他人共享琐碎信息。