如何基于更新补丁集的Gerrit变更重定本地分支基准?
解决Gerrit新补丁集本地重基无法引用的问题
问题根源
你用git fetch拉取的Gerrit变更只会存到本地的FETCH_HEAD临时引用里,没有本地分支或标签指向它,所以重基时没法直接通过分支名引用。
具体解决方法
1. 先确认拉取的变更已到位
拉取后先验证变更是否成功获取:
git log FETCH_HEAD --oneline
能看到新补丁集的提交记录就说明拉取没问题。
2. 直接用FETCH_HEAD重基(临时使用)
如果只是这次重基用,直接在你的本地分支上执行:
git rebase FETCH_HEAD
本地提交会自动基于刚拉取的新补丁集重新应用。
3. 创建本地引用方便后续使用
如果需要多次引用这个新补丁集,给FETCH_HEAD创建临时分支或标签:
# 创建临时分支 git checkout -b temp-gerrit-patch FETCH_HEAD # 或者创建标签 git tag temp-patch-tag FETCH_HEAD
之后重基时直接用分支名或标签名:
git rebase temp-gerrit-patch # 或者 git rebase temp-patch-tag
4. 拉取时直接映射到本地分支(更高效)
下次拉取Gerrit新补丁集时,直接把远程变更绑定到本地分支,拉完就能直接用:
git fetch origin refs/changes/69/111569/10:refs/heads/my-gerrit-branch
拉取完成后,本地就有my-gerrit-branch分支,重基时直接用这个分支名即可。
5. 处理重基冲突
如果重基时遇到冲突,手动解决冲突后执行:
git add . git rebase --continue
要是不想继续重基,执行:
git rebase --abort
内容的提问来源于stack exchange,提问作者texmelex
相关产品推荐
相关产品推荐

