分支规范
- 仓库里应该随时拥有
master
及develop
分支; - 禁止以任何形式
commit –> master
,即master
分支上的代码不应存在有coding
中的状态; - 所有的开发者均需要在
develop
分支上checkout
至自己本地分支,待本地开发开发完毕后push
至develop
(这步也可以由管理员手动检查、测试、合并)
开发规范
- 仓库应
gitignore
可由系统在运行时生成的配置、缓存、附件等文件; - 对于开发分支的配置文件 本地更改后 请使用
update-index --skip-worktree [FILE]
即提交时 应该跳过工作树如数据库配置文件等; - 每次
commit
不应包含与本次分支目的无关的任何文件; - 善用
add
暂存功能 - 开发本地分支时,建议使用git 工作流,即大体分为功能分支、发布分支、补丁分支及标签分支(可选),前缀对应是feature、release、hotfix 及version(可选);
- 本地工作流分支开发完成后无须
push
到远程,而是将其合并至远程develop
,待合并完成后删除本地工作流分支; - 从远程develop分支为基准点创建自己的本地分支,分支名格式为#任务编号;
- 在本地分支开发、调试并推送到远程同名分支;
- 推送成功后,请在 team 找到对应的任务并标记为已完成;
- 若验收不通过,请重复第2、3步;
- 验收通过后,由管理员手动合并至远程 develop 分支;
- 完成阶段性研发工作后,将 develop 合并至 master 并标记里程碑(标签);
提交规范
- 禁止提交尚处于 开发中 的文件;
- 单次提交必须是单一的任务,不能包含任何除本分支/任务外的其它任何文件;
- 禁止提交压缩包、word 等 git 不支持预览的二进制文件;
- 提交说明的格式必须为「 #任务编号 任务描述 」;
- 所有分支必须关联issue禁止出现孤立分支
commit message关联任务
关键字: link, linked, linking, relate, related, relating
形式: commit message中输入 `link #issue_ident`、 `link issue_url`
操作规范
请所有人必须严格按照如下流程开发操作,否则后果自负。
- 从远程develop分支为基准点创建自己的本地分支,分支名格式为 「 #任务编号 任务描述 」;
- 在本地分支开发、调试并推送到远程同名分支[首次推送需要关联issue];
- 推送成功后,请找到对应的任务并标记为已完成;
- 若验收不通过,请重复第2、3步;
- 验收通过后,由管理员手动合并至远程 develop 分支;
- 完成阶段性研发工作后,将 develop 合并至 master 并标记里程碑(标签);
常用技巧
同步修剪远程分支
git remote prune origin
Git 清理无效的远程追踪分支,该命令可以删除本地版本库上那些失效的远程追踪分支。
批量清理跟踪文件
git update-index --no--skip-worktree $(git ls-files --modified)
修改过的文件 取消跳过工作树
创建空白分支 [无提交前分支为不可见状态]
git checkout --orphan branch-name
# 创建一个orphan的分支,这个分支是独立的
Switched to a new branch 'branch-name'
git rm -rf .
# 删除原来代码树下的所有文件
rm '.gitignore'