Git提交信息、diff更新与Phabricator修订编辑的优先级问题
Phabricator Diff 摘要编辑与Git提交信息的优先级问题
我来帮你理清这个逻辑——之前折腾Phabricator和Git同步的时候也踩过类似的坑,核心要搞清楚:Phabricator的修订(Revision)和本地Git提交是两个相对独立的实体,但同步时有着明确的优先级规则。
一、修改的优先级判定
- Git端的修改优先级更高:当你在本地用
git commit --amend修改提交信息(标题、描述),或者推送了新的diff版本(arc diff),Phabricator会自动用Git提交的元数据覆盖网页上你编辑过的摘要、描述等内容。毕竟Phabricator默认把Git仓库作为权威数据源,本地提交的信息才是“源头”。 - 网页编辑仅影响Phabricator内部展示:你在网页上修改diff的摘要、关联任务、备注等内容,只会改变这个修订在Phabricator平台内的展示效果,不会反向同步到你的本地Git仓库,也不会影响其他协作者的本地提交。
二、网页编辑后落地diff的覆盖问题
如果已经在Phabricator网页上编辑过修订信息,之后再落地(比如用arc land或者手动合并分支)这个diff:
- 网页上的编辑内容不会被Git提交信息覆盖——因为落地操作本质是把diff对应的Git提交合并到目标分支,而Phabricator网页上的编辑只是平台内的元数据修改,并不会写入Git提交本身。
- 但要注意一个例外:如果在网页编辑之后,你又在本地修改了Git提交信息并重新推送了diff,这时候网页上之前的编辑内容会被新的Git提交信息覆盖,后续落地的就是更新后的Git提交内容。
小技巧
如果想让Phabricator上的编辑内容同步到Git仓库,可以在修订页面点击「Export Commit Message」,把导出的内容复制到本地,用git commit --amend更新提交信息,再重新推送diff,这样两边的信息就能保持一致了。
内容的提问来源于stack exchange,提问作者Liron Yahdav
相关产品推荐
相关产品推荐

