Git如何将staging、develop分支与release分支同步
分支同步操作方案
操作前请确认develop、staging分支上没有需要留存的未同步到release的代码,硬重置操作会直接丢弃上述分支的独有改动
具体操作步骤
- 首先拉取远程所有分支的最新状态,确保本地拿到的release分支是最新版本
git fetch origin - 同步develop分支到release状态
- 切换到本地develop分支
git checkout develop - 将本地develop分支硬重置为和远程release分支完全一致
git reset --hard origin/release - 强制推送到远程仓库覆盖旧的develop分支
git push origin develop --force
- 切换到本地develop分支
- 同步staging分支到release状态
- 切换到本地staging分支
git checkout staging - 将本地staging分支硬重置为和远程release分支完全一致
git reset --hard origin/release - 强制推送到远程仓库覆盖旧的staging分支
git push origin staging --force
- 切换到本地staging分支
网页端提示说明
GitHub网页端操作提示“There isn't anything to compare”,是因为网页端默认比较逻辑是校验源分支是否有目标分支没有的新提交,你需要用更早的release分支覆盖更新的develop/staging分支,属于回退操作,网页端默认对比逻辑识别不到可合并内容,因此需要通过命令行强制覆盖完成操作。
后续注意事项
- 如果你的仓库设置了分支保护规则,需要先临时解除develop、staging分支的强制推送限制,操作完成后再恢复。
- 若团队其他成员此前拉取过develop、staging分支的改动,操作完成后请通知他们执行
git fetch origin,再对对应本地分支执行git reset --hard origin/[分支名],避免后续推送将旧改动重新带到远程仓库。
内容的提问来源于stack exchange,提问作者Aniruddha
相关产品推荐
相关产品推荐

