git项目管理总结
项目分支
- master:主分支,存储已发布版本源码,不能在此分支开发,在master分支上构建生产版本,发布完打tag
- hotfix:修复分支,临时修复线上紧急bug,以主分支为基础新建
- test:测试分支:可以在此分支上修复bug,以dev分支为基础新建
- dev:开发分支:用于汇总feature分支,只能在此分支上进行合并,不能开发,这个分支一般有一个负责人
- feature:模块分支:用于开发某个功能模块
流程
- 创建master分支,
- 以master为基础创建dev分支
- 以dev为基础创建feature分支
- feature分支merge到dev
- 以dev为基础创建test分支
- test测试合格后merge到master分支
- 删除没用的feature分支、test分支
- 在master分支上打tag
- 线上出问题后,以master为基础创建hotfix分支,修改完成merge到dev分支
- 如果需要测试,以dev为基础创建test分支
- 测试合格,merge到master分支,创建tag,删除test分支
常用功能
配置
- 初始化:git init
- 下载库:git clone
- 当前配置:git config --list
- 配置用户名: git config [--global] user.name "[name]"
- 配置邮箱: git config [--global] user.email "[email address]"
- 列出远程库:git remot show origin
分支
- 创建并切换分支:git branch -b [branch-name]
- 切换分支: git checkout [branch-name]
- 合并分支:git merge [branch-name] 或者 git merge --no-ff [branch-name]
- 删除分支: git branch -d [branch-name]
添加,提交
- 添加:git add ./
- 提交:git commit -m '信息'
- 推送:git push
- 拉取:git pull
- 打标签:git tag v1.0
查看
- 列出tag:git tag
- 日志:git log
- 文件变更:git status
- 文件对比:git diff '路径'
- 回滚:git reset --hard commit-id
- 放弃工作区修改:git checkout .或者放弃某个文件:git checkout '路径'
- 暂存:git stash
- 取暂存:git stash pop
注意
- git reset: 是恢复暂存区;
- git reset --hard: 是恢复本地,暂存区与HEAD一致
- git merge [branch-name]: 是直接将分支commit信息合并到分支一条直线;
- git merge --no-ff [branch-name]:是创建新的节点合并到分支
实际项目
- 如果项目不复杂,涉及人数不多的垂直开发:只需master分支与dev分支即可
- 如果不在乎历史消息的整洁:可直接merge
- 对历史版本比较重要的:需要--no-ff进行新建节点,-squash进行合并节点
持续更新...