在Phabricator中撤消最后一个差异

Arn*_*aud 11 git phabricator

我在Phabricator(使用Git)中有一个开放的版本,并且我使用该arc diff命令向此修订提交了一个diff .

问题是这个差异是坏的,所以我想撤消它并回到之前的差异.

你知道我该怎么办?

sea*_*ato 11

我经常犯对错误的分支进行差异化的错误。

第一步是撤消差异。我们不能从修订历史中消除差异,但我们可以恢复它。

$ arc patch --diff <diff_id> # last good diff, creates <arcpatch-branch>
$ arc diff --update <revision_id> <arcpatch-branch> # "reverts" the offending diffs to the current state
Run Code Online (Sandbox Code Playgroud)

此时,您的修订已恢复到其原始状态。如果您想再次执行差异,请执行您通常执行的操作。使用针对 diff 的更改签出分支,然后执行 diff

$ git checkout <new_branch>
$ arc diff <source_branch> # new_branch has changes that is intended to be merged into source_branch
Run Code Online (Sandbox Code Playgroud)

归功于列出了大部分这些步骤的 altendky。但是,revision他引用的标志不再存在,我也希望将步骤列出得更清楚一些。

  • 有人可以澄清一下这个例子中的不同论点是什么吗?revision_id 和 diff_id 有什么区别? (2认同)

alt*_*dky 5

免责声明:我的Git经验有限,目前我正在使用带有SVN的Phabricator.

假设您没有其他本地更改,则可以还原您的工作副本,然后arc patch --diff <diff_id>Revision Update History表的ID列中显示diff ID .然后arc diff --revision <rev_id>像往常一样更新.我认为它在技术上不是删除,但它与伪修订控制一起使用.将跟踪错误和更正.