你可以对特定的git分支进行区分吗?

Wil*_*ill 34 git phabricator arcanist

我对Arcanist和git都很陌生.我希望能够针对我目前检出/工作的git分支创建一个arc diff(使用Arcanist的Phabricator Differential实例)(我有一个本地未推送的提交)而不是master.对我而言,弧形文档对此并不清楚.可能吗?怎么样?如果答案适用于2-3个本地未推送的提交,那将是很好的.

"arc help diff"也给出了:

      diff [paths] (svn)
      diff [commit] (git, hg)
          Supports: git, svn, hg
          Generate a Differential diff or revision from local changes.

          Under git, you can specify a commit (like HEAD^^^ or master)
          and Differential will generate a diff against the merge base of that
          commit and HEAD.
Run Code Online (Sandbox Code Playgroud)

也许我只需要做"arc diff [commit]",其中[commit]是目标分支的一角?但我想确定,因为我不想污染我们的Phabricator实例.

此外,如果答案解释如何做对,我很高兴收到"你做错了"的答案.

Eva*_*ley 49

一般来说,arc diff <branch>会做你想要的.(如果您已经在分支机构而不是本地主题分支,请尝试arc diff origin/<branch>改为.)

当像这样调用时,arc实际上会对merge-base分支的提示和工作副本中的当前提交进行区分,但通常这是你想要的.如果你真的想要对你可以使用的分支提示生成一个diff arc diff --base git:<branch>,但是这个diff会包含一些更改,这些更改会撤消branch对分支点后代的任何提交,就像那样git diff <branch>..HEAD.

在所有情况下,您都可以使用它arc which <commit>来预览arc diff将要执行的操作.这将解释将选择哪个修订范围,显示确切包含哪些更改的命令,并解释选择该范围的原因.

您还可以使用arc diff --preview生成差异,而不发送它进行审核.这将允许您在将更改提交给其他任何人之前预览更改.

也可以看看:

https://secure.phabricator.com/book/phabricator/article/arcanist_commit_ranges/