Arc land 失败:<feature-branch> 上的任何提交都尚未出现在目标上

Arc land fails: no commits on <feature-branch> which are not already present on target

或多或少,我故意创造了这个场景:

# We use git-flow.
$ git flow feature start <feature>

# update a file
$ git commit <file> -m '<message>'
$ git rebase -i develop
$ git push -u origin <feature-branch>

# Try arcanist now
$ arc diff

# diff was accepted
$ git flow feature finish <feature>

# feature branch removed, now in develop, let's push
$ git push

所以我现在处于没有分支的状态,由于本地分支不可用,我无法着陆。 注意:git(和 gitolite)工作正常

$ arc land

Exception
Branch "<feature-branch>" does not exist in the local working copy.

/rant.. 我没有在 Phabricator 的 Maniphest 中看到我的功能分支。为什么不呢?

我可以把那个分支拉回来:

$ git fetch -a
$ git checkout <feature-branch>

但是我还是无法登陆:

$ arc land
Landing current branch '<feature-branch>'.
TARGET  Landing onto "<feature-branch>", selected by following tracking branches upstream to the closest remote.
REMOTE  Using remote "origin", selected by following tracking branches upstream to the closest remote.
FETCH  Fetching origin/<feature-branch>...

Usage Exception: There are no commits on "<feature-branch>" which are not already present on the target.

据我所知,我无法关闭该差异。我该如何恢复?

arc close-revision <Diff-ID> 应该关闭它。基本上,您有两个相互竞争的 Git 附加组件,它们是 "landing" 您的更改。 git flow feature finish <feature> 已经 "landed" 您的更改,因此当您 运行 arc land 时,它无法执行 "landing" 您的更改的主要功能。