创建日期: 2018-09-22 09:50:06
Git & GitHub
Git是一个版本控制软件:
读作[gɪt]
,拼音读作gē yì te
。
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
GitHub是一个网站:
读作[gɪt hʌb]
,拼音读作gē yì te hà bo
GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.
通常自己一个人开发时使用Git有助于对代码版本进行控制,返回到之前任意时间点,能够合并多个分支流,解决或查看冲突。假如有协作开发作用更大。
而使用GitHub不仅能够用来存储Git库,其还会提供以下操作:
- 文档需求:使用提出问题(issues),可以提出新的功能需求,记录缺陷,从而让团队进行开发
- 独立分支流记录:使用分支(branches)和拉请求(pull requests),可以在不同的分支或功能下进行合作。
- 评估工作进展:通过查看拉请求(pull requests)列表,可以查看目前工作状态下的所有不同功能,通过单击列出的任何一个拉请求命令,可以看到最新变化以及所有关于该动的讨论。
- 看到团队的进展:通过使用Insights,可以看到团队的工作进展和脉冲(pulse)。
关键概念/术语
由于目前GitHub还是英文的,所以刚开始学习时不是很明白其中的某些概念,可能会觉得有点不明所以,经过一段时间的摸索,特整理如下:
repository(仓库)
单数,a repository;复数,repositories。概念:
a place, building, or receptacle where things are or may be stored.
相当于一个项目(Project)文件夹,仓库名也就是项目文件夹名称,可以在里面存放代码,各种和项目有关的文档等。
watch(关注)
长期关注某个项目的进展,设置在某些情况下发送提醒(到邮箱)。
star(收藏)
觉得某个项目不错,收藏一下,给个小星星,方便以后查看,同时也是对项目开发者的赞赏。
fork(分叉)
有时候我没有直接改变某个项目的许可,或者我想参与一个你不知道的人或者团队的开源项目,就可以克隆,修改,并使用拉请求的方式将其提交到最初的项目中。
issue(提出问题)
用来讨论功能/需求,跟踪缺陷,或者两者兼备。比如我发现某个项目在PC上没问题,但移植到手机上就出现了位置的错误,就可以开一个issue来记录错误的过程。
pull request(拉请求)
原先拉请求是用来请求别人复查自己已经完成的工作,并将它们合并到主分支上。现在,拉请求常用在一个流程的早期阶段,可以讨论可能的功能。
clone(克隆)
将项目库复制到本地。例如我下载一个项目的副本,在本地将其中的某个bug修复,然后再提交回GitHub。
wiki(维基文档记录)
当Readme比较长了,可以使用wiki进行文档记录,各个章节页面用简单的链接关系相联系。(通常我看好像没多少中国开发者选择使用wiki,有的readme相当长)。
commit(提交)
将一个或者多个文件的修改保存到Git历史记录中,都会创建一个新的提交。
branch(分支)
- 主分支(master branch)
- 功能分支(feature branch)
merge(合并)
将一个分支的全部工作合并到另一个分支,GitHub会在合并前检查是否有冲突并给出修改意见。
release(发布)
到了一定阶段,项目已经差不多了,就可以新建release,版本x.xx,来发布正式版供别人打包下载。
GitHub学习资源
- 初级:https://services.github.com/
- 高级:https://developer.github.com/