误将5次提交纳入Phabricator修订版D100,如何排除多余4次?
解决Phabricator修订版D100多余提交的问题
既然你的提交已经被合并(squashed),而且arc diff --update没让你编辑变更内容,那可以通过以下步骤来修正D100,只保留最后一次提交的内容:
方法一:重新基于目标分支创建修订版(最稳妥)
- 先切换到你的目标分支(比如
main或develop),拉取最新代码:git checkout main git pull origin main - 基于目标分支创建一个新的临时分支,然后把你最后一次提交的内容 cherry-pick 过来:
git checkout -b temp-fix git cherry-pick <最后一次提交的哈希值> - 现在用这个临时分支更新D100,执行:
这时候应该会正常弹出编辑框让你确认变更,提交后D100就只会包含这次cherry-pick的内容了。arc diff --update D100 temp-fix - 完成后可以删除临时分支:
git checkout main git branch -D temp-fix
方法二:直接修改Phabricator的修订版差异(如果本地分支已清理)
如果你的本地已经没有多余提交的分支了,也可以直接在Phabricator网页端操作:
- 打开D100的页面,找到Diff标签页
- 点击页面右上角的Edit Diff或者Update Diff按钮(具体按钮名称可能因Phabricator版本略有不同)
- 在弹出的界面中,选择仅包含你需要的最后一次提交的分支或提交哈希,确认后保存即可。
为什么arc diff --update没显示可编辑内容?
这是因为当你执行arc diff --update时,如果当前分支和D100关联的分支差异已经被Phabricator识别为“无变更”(因为你已经squashed了提交,本地分支和远程的差异可能和之前的D100重复),它就只会让你编辑注释,而不会显示变更内容。这时候换一个包含正确差异的分支来更新就可以解决这个问题。
内容的提问来源于stack exchange,提问作者mhyousefi
相关产品推荐
相关产品推荐

