How to use Github

在写这篇文章的时候,Github已经被Microsoft收购,不过依然会使用Github,因为觉得对自己的影响不大。

最近重新学习Git发觉自己其实对Github了解甚少,star了不少,但是从来没有好好看过,我觉得学习一定要发挥自己的主动性,不能光收藏,还要尽可能提出issues、甚至代码,当前我最应该克服的是懒,破除嫌麻烦的这种思想,如果自己都懒,都嫌麻烦,如何去解决麻烦。

回到正题,Github是一个git版本库托管商,里面有各种开源项目。本篇文章尝试写清楚从Github的入门使用到参与开源项目的一般方法。

官网:https://github.com/

账户的配置

如何注册账户就不介绍了

SSH访问

配置SSH是为了能够在本地电脑上访问Github,识别出你推送的提交确实是你推送的,而不是别人冒充的

具体如何做,其实在【Hexo】使用Hexo搭建github博客里面有过介绍,那篇文章是为了制作Github Pages,这里不再说明git的安装和配置,那么只有一行命令

1
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github

该命令会在本地电脑(Linux)的~/.ssh下创建公钥和私钥,将公钥(id_rsa_github.pub)中的内容拷贝到github帐号Settings>SSH and GPG keys

此外还有头像的配置(Profile)、邮箱的配置(Emails)、两步验证(Security)等全部都在Settings里。

创建项目仓库

创建项目仓库 首页 > New repository
如果勾选 Initialize this repository with a README,会创建一个README.md文件,

可以将本地已存在的项目上传到仓库

1
2
3
4
5
6
git init
git remote add origin git@github.com:fengrenxiaoli/GitTest.git
git add .
git commit -m "upload"
git push -u origin master
# 第一次push需要-u参数,关联本地master和远程master,以后不用加-u

也可以将Github上的项目复制到本地

1
git clone git@github.com:fengrenxiaoli/GitTest.git

Github协作流程

  1. master 分支中创建一个新分支
  2. 创建,编辑,重命名,移动或删除文件
  3. 将这个分支推送到 GitHub 上
  4. 创建一个合并请求(Pull Request)
  5. 讨论,根据实际情况继续修改
  6. 项目的拥有者合并或关闭你的合并请求

给队友添加写权限

到项目的 Settings 页面,点击 collaborator 选项,输入框中输入相应的用户名使用户具有写权限。

Fork项目副本

对于大多数情况,参于开发者并不会被直接赋予写权限,开发者需要先Fork一份项目到自己的用户名下。

创建一个新分支

开新分支一定要在刚刚更新过的 master 的基础上开。
分支的名字应该是描述性的(如refactor-authenticationuser-content-cache-keymake-retina-avatars),越清楚越好

1
2
3
4
5
6
git pull
git checkout -b <branch-name>
vim <file-name>
git add <file-name>
git commit -m "some commit"
git push origin <branch-name>

发起Pull Request

修改项目后,在Github上点击 Compare & pull request,选择需要进行对比的分支,填写描述信息,需要图片可以直接拖进去,也可以点击selecting them

Pull Request会启动关于提交的讨论

如果需要新的改动,直接在分支上修改,然后同步即可在pull request页面看到


合并

拥有写权限的人可以点击 Merge Pull Request
合并之后可以删除分支

快速 Pull Request

如果只是修改很小的一点,没有必要使用上述流程,直接在Github网页上点击编辑,然后选择Create a new branch for this commit and start a pull request...

issues

https://guides.github.com/features/issues/
Issue 中一般是放一些临时性的讨论(报Bug、提新需求等),最终是要被关掉的。如果 Issue 里面有一些精华的内容,可以拷贝出来贴到 wiki 中,方便大家查阅。

打开项目页面,点击issues,点击New issue
新建的issue会有一个编号,类似于# 1
issue支持MarkDown语法

代码高亮

使用三个反引号

1
2
3
\`\`\`js
alert("hello worold")
\`\`\`

快速引用

MarkDown中使用>作为引用
如果你想回答具体某个问题,可以用鼠标选中那段话,然后,敲 r 。这样这段话就自动出现在你的评论框中了。

拉别人进来讨论

如果你在评论框中输入@happypeter那么不管我是不是你当然项目的参与者,我都会收到通知来进来参加讨论

引用issue

在评论框中输入#会提示相应的issue。
如果我在当前 Issue#10 的评论框中写 #20 就可以自动链接到 Issue#20 了。同时 Issue#20 那边也会显示出 Issue#10 。这种指向和关联的功能在实用中是非常重要的

用版本留言关闭 Issue

点击Close issue按钮可以关闭issue

引用emoji

输入:,会提示输入emoji

1
:dancer:

Github Pages

https://pages.github.com/

Github Pages可以用于写博客,也可以用于制作项目网站,对应的网址是http://username.github.io/repository

里程碑

用于发布版本
Github项目页,点击release>Draft a new release,创建标签,填入字段

参考: