git内部原理
-
当新建一个新仓库时,仓库会自动创建一个.git目录,该目录包括了几乎所有内容,如果需要一个版本库,只要复制该目录的全部内容
初始化仓库后:objects目录下只有子目录
pack
和info
,但均为空。运行命令后创建两个文件并提交
-
objects目录下存储三种对象:
-
数据对象(blob)
-
树对象(tree)
-
提交对象(commit)
-
-
git储存对象的方法
-
会根据对象生成一个哈希值
-
哈希值的前两个字符用于命名子目录
-
余下的38个字符用于命名文件名
[注] : 可以根据校验和,查看存储的内容及对象类型
-
-
Git有三种环境变量:
1)系统变量
-
适用范围:对所有用户都适用
-
命令选项:
git config --system
2)用户变量
-
适用范围:只适用于该用户
-
命令选项:
git config --global
3)本地项目变量
-
适用范围:只对当前项目有效
-
命令选项:
git config --local
-
存储位置:
.git/config
-
gitflow
-
各个不同分支
分⽀名称 作⽤ ⽣命周期 需关注人员 提交or合并 起⽌点 Feature分⽀ ⽤于某个功能的 临时分 ⽀、开发 阶段 开发⼈员 可提交代码 由Develop分⽀产⽣, 最终合并到Develop 分⽀ Develop分⽀ 记录历史开发功 能 贯穿整个 项⽬ 开发⼈员 不能提交,由Feature分 ⽀、Bugfix分⽀、Release 分⽀、Hotfix分⽀合并代码 整个项⽬ Release分⽀ ⽤于本次Release 如⽂档、测试、 bug修复 临时分 ⽀、发版 阶段 开发⼈员, 测试⼈员,项⽬经理 可提交代码 由Develop分⽀产⽣, 最终合并到Develop 分⽀和Master分支 Hotfix分⽀ ⽤于解决线上bug 临时分 ⽀、紧急 修复阶段 开发⼈员, 测试⼈员 可提交代码 由Master分⽀产⽣, 最终合并到Develop 分⽀和Master分支 Master(Production) 分⽀ 记录历史发布版 本 贯穿整个 项⽬ 项⽬经理 不能提交,由Release、Hotfix分⽀合并代码 整个项⽬ -
总体流程
-
初始化项目,在develop分支上编写新的程序
-
创建一个feature分支,实现一个需要实现的新功能,然后将其合并到develop分支,之后feature分支失去作用,删除它
-
创建release分支,用于修复出现的问题,然后与production分支与develop分支合并
-
当出现线上故障,创建hotfix分支.修复bug,再次合并到production分支与develop分支
-