1. 从盖房子理解Git核心概念
刚接触Git时,很多人都会被branch、tag、release这三个概念绕晕。今天我用盖房子的例子,帮你彻底理清它们的关系和区别。想象你是个包工头,手头有个房地产开发项目——这就是我们的代码仓库(repository)。
1.1 地基与蓝图(master分支)
任何房子都要先打地基。在Git里,master分支(现在GitHub等平台默认叫main)就是你的地基,它代表着项目最稳定、可随时交付的版本。就像施工图纸的最终审定版,所有重要节点都要回归到这里。
实际开发中,直接往master提交代码是危险的。就像你不会在地基上随意开槽打洞,这会危及整个建筑结构。
1.2 施工队与分支(branch)
当你要同时进行水电改造、墙面装修、门窗安装时,就需要不同的施工队并行工作。Git的branch就是这些施工队:
bash复制# 创建新分支(组建水电工队)
git branch feature-plumbing
# 切换到该分支(派工人进场)
git checkout feature-plumbing
每个分支都是独立的"施工区域":
develop分支:相当于毛坯房,所有新功能合并到这里进行初步测试feature/*分支:具体功能开发,如feature-login(水电改造)、feature-payment(防水工程)hotfix/*分支:紧急问题修复,像突然发现卫生间漏水需要抢修
1.3 验收标签(tag)
当某个施工阶段完成并通过质检时,你会给工程节点拍照存档。Git的tag就是这个"工程照片":
bash复制# 给当前节点打标签(v1.0.0版验收)
git tag -a v1.0.0 -m "首次交付版本"
标签特点:
- 永远指向固定的commit(就像照片不能修改)
- 通常用版本号命名(v1.2.3)
- 轻量级标签(lightweight)只存标记,附注标签(annotated)会存储作者、日期等信息
1.4 交房仪式(release)
当整栋楼完成所有验收,就要举行交房仪式——这就是release。它不只是简单的标签,而是包含:
- 最终测试通过的代码(精装完成的房子
