用力或不用力推动 gerrit 改变?
push to gerrit change with force or without?
我的 gerrit 服务器发生了变化,我在本地存储库中提取并签出,如下所示:
git fetch <repoURL> refs/changes/<xx/yyyyyy/z> && git checkout FETCH_HEAD
在那之后,我的本地回购切换到一些分离状态提交,我想在其中以我使用 git 的通常方式工作,例如:
添加另一个提交(仍然缺少下载的 gerrit 更改)更改
将这两个合并为一个,保留原始提交消息(使用 gerrit 更改 ID):
git rebase -i HEAD~2
现在我可以推送到 gerrit(以创建一个新的(下一个)gerrit 补丁集):
3. git push <repoURL> HEAD:refs/for/branch
还是必须用力推:
3. git push -f <repoURL> HEAD:refs/for/branch
首先,您获取的零钱是什么状态?是“开放”(未合并)还是“关闭”(合并)?
如果它被合并,你不需要使用 fetch/checkout 命令下载更改,你应该只获取你的存储库并在分支中获取更改(因为它已经集成)。
如果不合并,你想做什么?您是要修复更改还是要基于此更改进行其他更改?
根据你的文字,我想你想修复这个变化(因为你打算加入这些变化),那么正确的做法是:
1- 下载更改:
git fetch <repoURL> refs/changes/<xx/yyyyyy/z> && git checkout FETCH_HEAD
2- 进行更改
3- 修改提交(保持相同的 Change-Id)
git commit --amend
4-推送修改后的提交
git push <repoURL> HEAD:refs/for/branch
我的 gerrit 服务器发生了变化,我在本地存储库中提取并签出,如下所示:
git fetch <repoURL> refs/changes/<xx/yyyyyy/z> && git checkout FETCH_HEAD
在那之后,我的本地回购切换到一些分离状态提交,我想在其中以我使用 git 的通常方式工作,例如:
添加另一个提交(仍然缺少下载的 gerrit 更改)更改
将这两个合并为一个,保留原始提交消息(使用 gerrit 更改 ID):
git rebase -i HEAD~2
现在我可以推送到 gerrit(以创建一个新的(下一个)gerrit 补丁集):
3. git push <repoURL> HEAD:refs/for/branch
还是必须用力推:
3. git push -f <repoURL> HEAD:refs/for/branch
首先,您获取的零钱是什么状态?是“开放”(未合并)还是“关闭”(合并)?
如果它被合并,你不需要使用 fetch/checkout 命令下载更改,你应该只获取你的存储库并在分支中获取更改(因为它已经集成)。
如果不合并,你想做什么?您是要修复更改还是要基于此更改进行其他更改?
根据你的文字,我想你想修复这个变化(因为你打算加入这些变化),那么正确的做法是:
1- 下载更改:
git fetch <repoURL> refs/changes/<xx/yyyyyy/z> && git checkout FETCH_HEAD
2- 进行更改
3- 修改提交(保持相同的 Change-Id)
git commit --amend
4-推送修改后的提交
git push <repoURL> HEAD:refs/for/branch