在写这篇文章的时候,Github已经被Microsoft收购,不过依然会使用Github,因为觉得对自己的影响不大。
最近重新学习Git发觉自己其实对Github了解甚少,star了不少,但是从来没有好好看过,我觉得学习一定要发挥自己的主动性,不能光收藏,还要尽可能提出issues、甚至代码,当前我最应该克服的是懒,破除嫌麻烦的这种思想,如果自己都懒,都嫌麻烦,如何去解决麻烦。
回到正题,Github是一个git版本库托管商,里面有各种开源项目。本篇文章尝试写清楚从Github的入门使用到参与开源项目的一般方法。
账户的配置
如何注册账户就不介绍了
SSH访问
配置SSH是为了能够在本地电脑上访问Github,识别出你推送的提交确实是你推送的,而不是别人冒充的
具体如何做,其实在【Hexo】使用Hexo搭建github博客里面有过介绍,那篇文章是为了制作Github Pages,这里不再说明git的安装和配置,那么只有一行命令
|
|
该命令会在本地电脑(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
文件,
可以将本地已存在的项目上传到仓库
也可以将Github上的项目复制到本地
Github协作流程
- 从
master
分支中创建一个新分支 - 创建,编辑,重命名,移动或删除文件
- 将这个分支推送到 GitHub 上
- 创建一个合并请求(Pull Request)
- 讨论,根据实际情况继续修改
- 项目的拥有者合并或关闭你的合并请求
给队友添加写权限
到项目的 Settings
页面,点击 collaborator
选项,输入框中输入相应的用户名使用户具有写权限。
Fork项目副本
对于大多数情况,参于开发者并不会被直接赋予写权限,开发者需要先Fork一份项目到自己的用户名下。
创建一个新分支
开新分支一定要在刚刚更新过的 master
的基础上开。
分支的名字应该是描述性的(如refactor-authentication
,user-content-cache-key
,make-retina-avatars
),越清楚越好
|
|
发起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语法
代码高亮
使用三个反引号
|
|
快速引用
MarkDown中使用>
作为引用
如果你想回答具体某个问题,可以用鼠标选中那段话,然后,敲 r 。这样这段话就自动出现在你的评论框中了。
拉别人进来讨论
如果你在评论框中输入@happypeter
那么不管我是不是你当然项目的参与者,我都会收到通知来进来参加讨论
引用issue
在评论框中输入#
会提示相应的issue。
如果我在当前 Issue#10 的评论框中写 #20
就可以自动链接到 Issue#20 了。同时 Issue#20 那边也会显示出 Issue#10 。这种指向和关联的功能在实用中是非常重要的
用版本留言关闭 Issue
点击Close issue
按钮可以关闭issue
引用emoji
输入:
,会提示输入emoji
|
|
Github Pages
Github Pages可以用于写博客,也可以用于制作项目网站,对应的网址是http://username.github.io/repository
里程碑
用于发布版本
Github项目页,点击release
>Draft a new release
,创建标签,填入字段
参考: