在Bit Bucket中发起代码评审的命令序列及常见问题咨询
Bit Bucket代码评审的标准命令序列及常见问题解决
先梳理正确的Bit Bucket代码评审命令流程
正常来说,我们都是基于feature分支开发,避免直接修改master分支,这样能减少冲突和混乱,正确步骤应该是这样:
- 先拉取远程master的最新代码:
git checkout mastergit pull origin master - 创建并切换到你的feature分支(如果还没创建的话):
git checkout -b feature/your-feature-name - 在这个feature分支上开发、修改代码:
<Make changes to your code> - 暂存所有修改(用
.比*更稳妥,不会漏掉隐藏文件):git add . - 提交你的修改,记得写清晰的提交信息:
git commit -m "feat: 新增用户登录功能 | fix: 修复订单页计算bug" - 把本地feature分支推送到远程Bit Bucket仓库:
git push origin feature/your-feature-name - 最后到Bit Bucket网页端,找到你刚推送的feature分支,点击「Create pull request」就能发起代码评审了。
解决你遇到的两个问题
问题1:执行git add *后切换分支,有时提示「Please, commit your changes.」
这个问题根源是你在master分支上做了修改但没提交就想切换分支。Git的设计是:未提交的变更会跟着当前工作区走,如果你直接切换分支,这些变更会被带到新分支上,很容易引发意外冲突。
给你两个解决办法:
- 把变更转移到feature分支(推荐):
先暂存当前master的未提交变更:git stash
然后切换到feature分支:git checkout feature
最后把暂存的恢复到feature分支:git stash pop
这样你的修改就到正确的开发分支上了,后续按正常流程提交即可。 - 如果确实要在master提交:
执行git commit -m "xxx"提交master的修改,再切换分支,但强烈不建议直接在master分支开发代码。
问题2:执行git merge --no-ff origin master后push,有时报错「fatal: You have not concluded your merge (MERGE_HEAD exists).」
这个错误意味着你在合并master到feature分支时遇到了代码冲突,但还没解决完冲突就想push。Git在合并遇到冲突时会暂停,等待你手动解决。
解决步骤:
- 先查看哪些文件有冲突:
git status,会列出所有冲突文件 - 打开冲突文件,找到
<<<<<<<、=======、>>>>>>>这些标记,手动修改成正确的代码(比如保留需要的逻辑,删除冲突标记) - 解决完冲突后,暂存文件:
git add 冲突文件名(或者git add .全部暂存) - 完成合并提交:
git commit(不需要加-m参数,Git会自动生成合并的默认提交信息) - 最后再执行
git push就没问题了。
另外提一句,你的步骤7逻辑其实不太对,正确的合并姿势应该是:在feature分支上合并本地更新后的master分支(而不是直接合并origin/master),也就是先拉取master最新代码,切回feature,再执行git merge master,这样能确保你合并的是本地最新的master代码,减少远程冲突。
内容的提问来源于stack exchange,提问作者ChanGan
相关产品推荐
相关产品推荐

