主页
分支功能与分支合并
Git的分支模型是它相比于与其他的版本控制系统最大的优势。允许创建多个彼此完全独立的本地分支,并简单方便的进行分支合并与删除。
- 无缝进行上下文切换。随时开启一个新分支开发新功能,多次提交后切回原始状态,切换认识时刻的代码检查bug。打应用补丁并合并回主干。
- 基于角色并行多个分支。使用单独一个分支用于生产环境上线。另一个分支用户合并开发完的代码进行测试。多个分支用于日常开发。以减少代码提交对线上的影响。
- 基于功能并行多个分支。根据正在开发的不同新功能,并行多个分支,可以在功能分支之间来回切换。等到功能分支合并回主分支后删除功能分支。
- 无损试验验证。当你遇到一个bug时可以随意创建一个新分支进行验证,分支使用完后可以直接进行删除,这样在代码中不会留任何痕迹。
当多人协作时,并不需要向远程共享所有分支,只需要共享必要分支即可。
体积小巧并且速度快
Git的绝大部分工作都是在本地代码仓库中进行。相对于其他集中式的代码管理工具需要随时与服务器进行连接。Git的速度会更快。
Git是为在Linux内核上工作而构建的,这意味着从第一天开始,它就必须有效地处理大型代码库。Git用C编写,减少了与高级语言关联的运行时的开销。从一开始,速度和性能就一直是Git的主要设计目标。
Git最慢的操作只有在执行初识clone操作时,因为它不止在下载最近代码,还需要下载整个历史记录。
Git在项目的整个历史记录中也具有每个文件的每个版本,但是其数据大小和集中式版本控制系统相差不多,所以其客户端压缩和存储数据的效率高。
分布式
分布式使得使用Git时不是只签出当前版本文件,而是需要本地存储整个代码仓库。
- 多处备份 每个用户基本上都具有主服务器的完整备份。在崩溃或损坏的情况下,可以将这些副本中的每个副本向上推以替换主服务器。实际上,除非只有存储库的单个副本,否则Git不会有单点故障。
- 任意数量代码分支 Git可以支持几乎无限数量的代码分支。
- 多版本并行 集中式工作流程非常普遍,尤其是从集中式系统过渡的人们。如果有人从您上次获取以来就一直推送,那么Git将不允许您推送,因此所有开发人员推送到同一服务器的集中式模型就可以正常工作。
- 合作项目集中管理 在开源项目中常见的一种开发流程,开发者从基础远端仓库fork出自己的代码仓库,从基础远端仓库pull代码更新,把代码更新push到自己的远端代码仓库。由一个管理中间者执行开发人员代码仓库到基础仓库的合并。
- 一主多从管理 在linux内核这种大型项目中使用,又多个二级管理者管理特定子系统代码。最终合并回基础分支。
数据安全
Git的数据模型确保每个文件和提交都计算唯一校验和,并且通过校验和进行检索。校验和只能自动生成无法自行修改。所以一个校验和可以标记它对应的所有信息。
Git的暂存区
在工作区和版本库之间的一个中间区域,提供了很多更神奇的用法。
如果不想使用暂存区,可以使用git commit -a
跳过。