Git | Git 和 Github 是什么
什么是 Git
Git 是一个分布式版本控制软件。
你为什么需要 Git
版本管理
假设你有一天打算给项目添加新的代码,你噼里啪啦敲了一大堆代码,然后发现代码有问题,项目运行不起来了,被玩坏啦。
这时候你就需要返回到之前那个能稳定运行的版本。Git 通过一个命令就可以直接返回到之前那个版本,这就是版本管理的好处。
分支管理
假设项目需要两个新功能:小张负责功能 A,小王负责功能 B。
如果没有 Git,那可能需要考虑:小张先把 A 的功能写完后,把代码交给小王,再开发功能 B。这样存在最大的弊端:一是效率低下,两个功能没有“并行”开发,而是“串行”的。
分支管理是这样解决的:项目的源代码叫做 main 分支,小张新建一个 feat/A 分支,这个分支就像 main 分支的”双胞胎”,但两人之后会长得不一样。小王则新建一个 feat/B 分支。从此以后,小张只修改 feat/A 分支的代码,小王修改 feat/B 分支的代码。现在就存在三个分支:
- 没有新功能的 main 分支
- 存在 A 功能的 feat/A 分支
- 存在 B 功能的 feat/B 分支。
假如 A 功能开发完了,就把 feat/A 分支合并(merge)到 main 分支里面,使得 main 分支具有 A 功能。B 功能也是一样的原理。
合并(merge)的原理是:找出 feat/A 分支和 main 分支的“共同祖先”,再把不同的代码应用到这个“共同祖先”上。
通过分支管理,就可以做到两个功能可以同时开发,大大提高了开发效率(当然优点不止这个)。
什么是 GitHub
GitHub 是一个在线软件源代码托管服务平台,用于公开程序或软件的代码,使用 Git 作为版本控制软件。
为什么需要 Github
托管 Git 中的代码
刚刚 Git 解决了版本管理和分支管理的问题,但是如果一个公司要多人协作,就需要一台服务器存储 main 分支的代码,然后大家访问这个服务器,从 main 分支上新增自己的分支。
这个服务器可以自己搭建,但是目前最常用的就是 Github:它就是一个服务器平台,托管全世界无数项目的代码。