git常用命令和分支规范

1 第一次使用GIT之前需要设置用户名和邮箱

git config --global user.name "qzeng"
git config --global user.email xxx@qq.com

2 常用命令

git clone <path to repository> 克隆远程代码库到本地
git pull --rebase 同步本地代码库,并同时衍合,将本地提交移动到最新提交之后,避免多余的合并提交
git mergetool --tool <toolname> 使用工具解决合并冲突
git status 查看当前分支,本地修改,暂存文件,非暂存文件等
git diff 查看还没有被暂存的本地代码改动
git diff --cached 查看已经暂存的本地代码改动
git add | git add -A | git add -A -n 暂存一个本地修改。-A(all)代表暂存所有本地修改和新建文件。-n (dry run)代表只查看受影响文件但不做暂存。
git commit -m "message" 提交暂存的改动成为一个本地提交
git push 推送当前分支本地提交到远程,默认是提交到对应的远程库
git branch -a 查看分支
git branch <branchname> 创建分支
git checkout <branchname> 切换分支
git merge <branchname> 把<branchname>合并到当前分支
git stash 隐藏当前改动
git stash list 列出所有隐藏项
git stash show 查看某一个隐藏项的内容
git stash pop 恢复最新的隐藏项
git branch --set-upstream-to=origin/<branch> <local_branch> 设置本地分支追踪的远程分支
3 发布规则

Version

(Red)

Definition

Owner

Comment

1.1.0.0.0

Major Release

DEV Manager

Only increase by 1 when there is architecture or main framework change. Sub version will be reset to 0.

1.1.0.0.0

PROD Release

DEV Manager

Increase by 1 for each Production release. Sub version will be reset to 0.

1.1.1.0.0

UAT Release

DEV Manager

Increase by 1 for each UAT release. Sub version will be reset to 0.

1.1.0.0.0

Feature Development

DEV

Increase by 1 if Develop Team initialized a new feature or enhancement.

1.1.0.0.0

Bug Fix

DEV

Increase by 1 when developer fixes a bug reported by testers or clients.

可以计划使用前三位,其中第三位意义稍有不同,会对应的是SIT Release。

例如:

每周三,从dev分支cut分支release_a.b.c.0.0,并发布到SIT env。

QA基于release_a.b.c.0.0做集中测试,发现的bug和新的feature都会在下周的release_a.b.c+1.0.0发布到SIT。

稳定版本会被推送到UAT。按照项目计划时间表,最后的稳定版本被推送到生产。

SIT发布的版本保证版本号前三位的连续,即1.0.0.0.0,1.0.1.0.0,1.0.2.0.0。。。

UAT和生产发布的版本保证版本号前两位的连续,即1.0.0.0.0,1.1.0.0.0,1.2.0.0.0。。。

4 分支规则
master Git的主分支,最稳定的分支,所有release分支发布到生产之后会merge到该分支。dev分子也必须保持与其的同步。 只接受从release分支的合并和hotfix。
dev 开发的主分支,开发人员应该在测试过自己的代码之后(或许还会有自动化测试案例)才提交到该分支。release分支会从这里cut。务必保证分支健康度。

Daily Build基于该分支。

代码提交到dev分支后,resolve对应的JIRA(即Status=TEST IN PROGRESS)

release_x.x.x.x.x 发布分支,从dev cut出来。理论上只接受dev分支cherry-pick过去的bug fix。QA集中在相关测试。被部署到生产(或者UAT)之后,需要merge到master。 QA验证后,close对应JIRA(即Status=CLOSED)
其他分支 开发人员自己根据feature或者偏好创建自己的开发分支,建议每日保持与dev同步。该分支上开发完成,unit case完成,自测完成的代码可以merge到dev分支。 代码全部或部分提交到自己的开发分支后,即开始对应功能开发或bug fix任务,start对应的JIRA(即Status=IN PROGRESS)
posted @   剑阁丶神灯  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示