Git与GitHub各分支均不同步时如何与master分支完成同步
Git分支同步问题解答
操作风险判定
不存在严重操作失误,该现象是多分支并行开发的典型正常情况,成因是功能分支合并入master后,你没有及时将master的后续更新同步回各个功能分支,部分分支后续还产生了未合并的新提交。
同步操作步骤
前置准备:更新本地master到最新版本
首先执行以下命令,确保本地master和GitHub远程master完全一致:
# 切换到本地master分支 git checkout master # 拉取远程master的最新代码 git pull origin master
同步落后于master的分支(header、main)
以header分支为例,main分支执行完全相同的操作即可:
# 切换到待同步的功能分支 git checkout header # 合并master的最新变更到当前分支 git merge master
如果出现代码冲突,手动解决冲突后执行提交:
git add . git commit -m "sync: 同步master最新变更"
最后将同步后的分支推送到GitHub:
git push origin header
同步领先于master的分支(footer)
你已确认所有需要的代码都已合并入master,说明footer领先的1个commit为冗余提交,可按需选择两种处理方案:
- 方案1:保留冗余提交记录
执行和header分支完全相同的合并同步操作即可,操作完成后footer会同时包含master全量内容和该冗余提交。 - 方案2:清除冗余提交,让footer和master完全一致
git checkout footer # 强制将footer分支内容重置为和master完全相同 git reset --hard master # 强制推送覆盖远程footer分支,确认不需要冗余提交再执行该操作 git push -f origin footer
内容的提问来源于stack exchange,提问作者geenpill
相关产品推荐
相关产品推荐

