1 什么是Git?
Git是一个分布式的版本控制系统,用于跟踪文件随时间的变化。
所以参与项目的程序员不仅能拥有文件的当前状态,还能拥有项目完整的历史记录。
2 Github是什么?
可上传Git数据库副本的网站。
提供了如下机制:一个用以共享库的集中位置、一个基于Web的界面以及分叉(forking)、拉请求(pull request)、提出问题(issue)、维基(WiKi)等功能。
它们能对所做的修改进行说明、讨论和评估。
3 为什么使用Git?
-
撤销更改功能:编译出错可恢复较早的一个版本。
-
一个包含所有更改的完整历史记录:可查看先前任意时间点的项目状态。
-
对改动原因进行文档记录:使用提交信息(commit message)可对修改进行记录以备将来进行参考。
-
修改一切的信息:可任意做出想要的修改而不用担心若出错无法恢复原样。
-
历史记录的多种分支流:可创建不同的功能分支,然后将其合并到主分支或最终不工作时将其删除。
-
解决冲突的能力:许多人可以在同一时间对相同的文件进行更改,Git能自动合并更改或展示冲突的信息。
-
历史记录的独立分支流:不同的人可工作在一个项目的不同分支上,最终完成总分支的功能合并。
4 为什么使用GitHub?
-
文档需求:使用提出问题(issues)可记录缺陷或指定新的功能。
-
独立分支流记录的协作:使用分支(branches)和拉请求(pull requests)可在不同的分支或功能下进行合作。
-
评估工作进展:通过查看拉请求(pull requests)列表,可以看到目前处于工作状态下的所有不同功能,可跟踪每一个拉请求最新的变化以及关于改动的讨论。
-
看到团队的进展:通过使用pulse或提交历史(commit history)命令,可看到团队的工作进展。
5 关键概念
- 提交(commit): 将修改保存到Git的历史记录都会创建一个新的提交。
- 提交信息(commit message):提交时对改动的详细解释,以便于他人和将来的查阅。
- 分支(brance):存放在一侧的独立的系统提交,可进行一个实验或创建一个新的功能。
- 主分支(master brach):创建的Git项目都会有一个默认的主分支,一旦其准备发布,其他分支的工作应完全停止。
- 功能分支(feature brach):创建新的功能都需要创建一个新的功能分支。
- 发布分支(release brach):如果有一个QA(质量管理)流程,或者为满足客户需求而必须支持旧版本的软件时,需要一个发布分支以存放必要的补丁或更新记录。功能分支跟发布分支没有任何技术差别,但是在和团队谈论项目时,区别两者是有用的。
- 合并(merge):将一个分支完成的全部工作归并到另一个分支,通常是将一个功能分支合并到主分支。
- 标签(tag):引用一个特定历史的提交。最常用于记录发布版本,据此可以知道发布的是哪个版本的代码以及何时生成的。
- 查看(check out):找到一个不同版本的项目历史记录,以及时查看该时间点的文件。
- 拉请求(pull request):常用于一个流程的早期阶段,用以讨论可能的功能。
- 提出问题(issue):讨论功能、跟踪缺陷。
- 维基(WiKi):进行文档记录。
- 克隆(clone):从GitHub下载一个项目的副本在本地工作。
- 分叉(fork):不具备某项目的许可,先复制该存储库再修改,使用拉请求将其提交回最初的项目。