Git分支管理全解析
1. 分支基础概念
分支允许仓库内容朝多个方向发展,每个分支代表一个独立方向。当仓库至少分出一个分支后,每次提交都会应用到当前活跃的分支上。
每个仓库中的分支都必须有唯一名称,该名称通常指向该分支上的最新提交,这个最新提交被称为分支的尖端(tip)或头部(head)。
Git不会记录分支的起源信息,随着新的提交,分支名称会不断向前移动。对于旧的提交,需要使用哈希值或相对名称(如dev~5)来命名。如果想要跟踪某个特定提交,可以为其显式分配一个轻量级标签名。
若要找到分支起始的原始提交,可以使用以下命令:
$ git merge-base original-branch new-branch合并是分支的互补操作。合并时,一个或多个分支的内容会与一个隐式目标分支合并,但合并不会删除源分支及其名称。
可以将分支名称看作是指向特定(尽管不断变化)提交的指针。一个分支包含了从项目开始到该分支的所有提交,通过这些提交可以重建项目的整个历史。
每个分支名称及其提交内容都存储在本地仓库。不过,当将仓库共享给他人时,可以选择发布一个或多个分支及其相关提交,但发布操作必须显式进行。如果仓库被克隆,分支名称和开发内容也会被复制到新的克隆仓库中。
2. 创建分支
新分支基于仓库中现有的提交创建,具体选择哪个提交作为新分支的起点由用户决定。
Git支持任意复杂的分支结构,包括分支再分支,以及从同一个提交分出多个分