场景
开发完成后,需要将 feature 分支的代码合并到 dep-qa 测试分支,触发流水线进行测试验证。
以下例子均为举例
前置条件
- 当前 feature 分支代码已全部提交(
git status显示 working tree clean) - 已配置远程仓库(origin)
操作步骤
1. 确认当前分支状态
bash
git status
确保没有未提交的更改。如有,先 commit 或 stash。
2. 切换到测试分支
bash
git checkout dep-qa
如果遇到 untracked file 冲突,按提示删除或移动冲突文件后重试。
3. 拉取远程最新代码
bash
git pull origin dep-qa
必须先 pull,避免本地落后导致不必要的冲突。
4. 合并 feature 分支
bash
git merge feature/4.0.7/你的分支名
示例:
bash
git merge feature/4.0.7/fe-file-management-optimization
5. 处理冲突(如有)
如果 Git 提示冲突:
bash
# 查看冲突文件
git status
# 手动编辑冲突文件,解决 <<<<<<< / ======= / >>>>>>> 标记
# 标记为已解决
git add .
# 完成合并
git commit
6. 推送到远程
bash
git push origin dep-qa
7. 切回开发分支(可选)
bash
git checkout feature/4.0.7/你的分支名
注意事项
| 要点 | 说明 |
|---|---|
| 方向不要搞反 | 在 dep-qa 上执行 git merge 你的分支,不是反过来 |
| 合并前先 pull | 避免本地 dep-qa 落后产生额外冲突 |
| 不要在 dep-qa 上直接开发 | dep-qa 仅用于测试集成,日常开发在 feature 分支 |
| 冲突及时处理 | 冲突越晚解决越复杂,合并后立即确认 |
常见问题
Q: 切换分支时提示 untracked file would be overwritten
删除或移动提示的文件,然后重新 checkout:
bash
Remove-Item -Path "冲突文件路径" -Force
git checkout dep-qa
Q: 合并后发现代码有问题,想撤销
bash
# 撤销最近一次 merge commit(未 push 时)
git reset --hard HEAD~1
# 已 push 时,用 revert
git revert -m 1 HEAD
git push origin dep-qa
Q: 想查看哪些 commit 会被合并
bash
git log dep-qa..feature/4.0.7/你的分支名 --oneline
完整流程速查
bash
git status # 确认干净
git checkout dep-qa # 切换
git pull origin dep-qa # 拉最新
git merge feature/4.0.7/你的分支名 # 合并
git push origin dep-qa # 推送
git checkout feature/4.0.7/你的分支名 # 切回开发