You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拉取Gerrit上他人未合并commit合并到本地且可轻松回退

Gerrit拉取未合并变更合入本地改动操作方案

最优适配方案:cherry-pick + git stash组合

完全匹配你的两个需求:既可以无缝合并同事的未合入变更,回滚操作也仅需1-2行命令,不需要复杂操作。

操作步骤

  1. 先暂存你本地的未提交改动,避免操作过程中丢失或冲突
git stash

执行后你的工作区会恢复到上次提交的干净状态,所有自有改动会被存入Git暂存栈,后续可随时恢复。
2. 拉取同事的Gerrit变更
打开Gerrit上对应变更的详情页,直接复制页面提供的cherry-pick命令执行即可,命令通用格式如下:

git fetch <你的Gerrit仓库地址> refs/changes/xx/xxxxxx/x && git cherry-pick FETCH_HEAD

执行完成后同事的改动就会作为一个独立的commit合入你当前的本地分支。
3. 恢复你自己的本地改动

git stash pop

如果出现文件冲突,手动解决冲突后即可得到同时包含双方改动的代码,正常编译部署即可。

快速回滚到改动前状态

根据不同操作阶段,选择对应命令即可一键恢复:

  • 如果cherry-pick过程中出现冲突,想要直接放弃合并:
git cherry-pick --abort

执行后直接回到cherry-pick前的状态,你的本地stash改动也不会受影响。

  • 如果已经完成合并、测试完想要恢复到初始本地状态:
# 撤销cherry-pick产生的commit,丢弃所有合并后的改动
git reset --hard HEAD~1
# (可选)如果不需要保留之前暂存的自有改动,可执行删除
git stash drop

其他方案说明

不建议选择checkout或patch方式,适配性更低:

  • checkout会让仓库进入游离分支状态,无法直接在你当前的开发分支合并改动,后续还要处理分支切换的额外成本
  • patch导出导入需要手动下载patch文件再执行导入,步骤冗余,回滚也没有内置的一键命令,出错概率更高

内容的提问来源于stack exchange,提问作者Yves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:12:03