Git本地与Bitbucket提交状态不一致,求解释及解决方法
Git本地分支与Bitbucket PR提交显示差异的原因及解决方法
核心原因:两个提示的对比基准完全不同
git status是对比本地feature/my-branch和远程仓库的同名分支origin/feature/my-branch,显示“领先13个提交”,说明你本地这个分支有13个提交还没推送到Bitbucket的远程分支上。- Bitbucket的拉取请求(PR)是对比目标分支
master和你提交PR的远程feature/my-branch,显示“落后12个提交”,说明master分支已经新增了12个提交,而你的远程feature/my-branch还没同步这些更新。
解决步骤
1. 推送本地未提交的代码到远程分支
先确认本地代码无问题,执行推送命令:
git push origin feature/my-branch
推送完成后,再运行git status,应该会显示本地与远程分支已同步。
2. 同步master分支的最新代码到feature分支
推送完本地代码后,需要把master的最新提交合并到你的feature分支,处理可能的冲突:
- 切换到master分支并拉取最新代码:
git checkout master git pull origin master
- 切回feature分支,合并master的代码:
git checkout feature/my-branch git merge master
- 如果出现代码冲突,手动修改冲突文件后,提交合并结果:
git add . git commit -m "Merge master into feature/my-branch"
- 最后把合并后的feature分支推送到远程:
git push origin feature/my-branch
3. 刷新Bitbucket的拉取请求页面
完成以上操作后,刷新Bitbucket上的PR页面,就能看到更新后的提交状态——此时你的feature分支既包含了本地的所有提交,也同步了master的最新更新,PR的“落后”提示会消失。
内容的提问来源于stack exchange,提问作者banngs
相关产品推荐
相关产品推荐

