
稚翼天瞳 Git 协作开发文档
在CNB上创建属于自己的分支
登陆CNB后进到仓库主页,在分支里面创建分支,源分支选择master,分支名称自定。


💡 提示:分支命名建议采用
<类型>/<功能描述>的格式,例如:feature/user-auth、bugfix/login-error
在本地目录中切换到自己的分支
切换分支有两个方法:
- 用终端敲git命令切换分支
- 在IDE中选择分支
用终端敲git命令切换分支
当我们用 git clone 将项目仓库克隆下来之后,cd ./仓库名 进入仓库文件夹后我们可以用以下命令:
1 | git branch -a # 查看本地及远程的所有分支 |
等待进度条跑完即完成分支的切换
⚠️ 注意:原命令中的
git banch -a有拼写错误,正确应为git branch -a
在IDE中选择分支
我们可以用IDE以打开文件夹的形式打开仓库文件夹,进入源代码管理器,在下方有个分支的选项,点击之后在弹出的界面处点击自己的分支,等待切换
日常开发工作流
1. 开始开发前同步最新代码
1 | git checkout master # 切换到主分支 |
2. 开发过程中的提交
1 | git add . # 添加所有修改的文件到暂存区 |
3. 推送本地分支到远程
1 | git push origin your-branch # 推送本地分支到远程 |
4. 解决冲突
当合并代码时可能出现冲突,需要手动解决:
1 | git status # 查看冲突文件 |
提交PR(Pull Requests)
在完成模块开发之后,在仓库主页点击合并请求,新建一个合并请求,源分支选择自己的分支,目标分支为master。
编写好描述之后提交并联系管理员进行审核。
PR描述模板
1 | ## 📝 需求说明 |
💡 提示:提交PR前请确保代码已经push到远程分支
提交Commit规范
Commit Message格式
遵循约定式提交(Conventional Commits)规范:
1 | <type>: <description> |
Type类型说明
| 类型 | 说明 | 示例 |
|---|---|---|
| feat | 新功能 | feat: 添加用户注册功能 |
| fix | 修复bug | fix: 修复登录验证错误 |
| docs | 文档更新 | docs: 更新README.md |
| style | 代码格式(不影响代码运行) | style: 格式化代码缩进 |
| refactor | 重构(既不是新功能也不是修bug) | refactor: 重构用户模块 |
| test | 测试相关 | test: 添加用户登录测试 |
| chore | 构建过程或辅助工具的变动 | chore: 更新依赖版本 |
关联TAPD需求
在编写Commit时,在TAPD中复制需求关键词,在提交时附上:
1 | git commit -m "feat: 添加用户登录功能 [TAPD#12345678]" |
📌 注:为规范提交,完成提交PR时请附上各自负责的父需求的关键词(父需求关键词在各自分支内提交时可以不包含,但PR合并时必须包含)
常见问题FAQ
Q1: 不小心提交到了master分支怎么办?
1 | git checkout -b new-branch # 创建新分支并切换 |
Q2: 如何撤销某次commit?
1 | git revert <commit-id> # 创建一个新的commit来撤销指定提交 |
Q3: 如何修改最近一次的commit message?
1 | git commit --amend # 修改最后一次提交的信息 |
Q4: PR被要求修改后如何更新?
1 | 在本地修改代码后 |
Git常用命令速查表
| 命令 | 说明 |
|---|---|
git init |
初始化本地仓库 |
git clone <url> |
克隆远程仓库 |
git status |
查看工作区状态 |
git log |
查看提交历史 |
git diff |
查看修改内容 |
git branch |
查看本地分支 |
git branch -a |
查看所有分支(本地+远程) |
git checkout -b <branch> |
创建并切换到新分支 |
git merge <branch> |
合并指定分支到当前分支 |
git stash |
暂存当前修改 |
git stash pop |
恢复暂存的修改 |
最佳实践建议
- 频繁提交:小而频繁的commit比大而少的commit更容易管理
- 及时同步:每天开始工作前先pull最新代码
- 分支隔离:每个功能/bugfix使用独立分支
- 代码审查:PR提交后主动邀请同事review
- 测试先行:提交前确保代码能够正常运行
- 描述清晰:commit message要清楚说明做了什么和为什么这样做
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自MM.麦麦の备忘录