git - 你能对特定的 git 分支进行 diff 分析吗?

标签 git phabricator arcanist

我对 Arcanist 和 git 都很陌生。我希望能够针对我当前 checkout /工作的 git 分支(并且我有一个本地未推送的提交)而不是 master 创建一个 arc diff(使用 Arcanist 的 Phabricator 差异实例)。对我来说 arc docs对此尚不清楚。可能吗?如何?如果答案也适用于 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.

也许我只需要执行“arc diff [commit]”,其中 [commit] 是目标分支的尖端?但我想确定一下,因为我不想污染我们的 Phabricator 实例。

此外,如果答案解释了正确的做法,我很高兴收到“你做错了”的答案。

最佳答案

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

当这样调用时,arc实际上会与 merge-base 不同分支的提示和工作副本中的当前提交,但通常这是您想要的。如果你真的想针对分支提示生成差异,你可以使用 arc diff --base git:<branch> ,但此差异将包括撤消branch 上的任何提交的更改它们是分支点的后代,就像 git diff <branch>..HEAD会的。

在所有情况下,您都可以使用 arc which <commit>预览什么arc diff会做。这将解释将选择哪个修订范围,向您展示命令以准确查看包含哪些更改,并解释选择该范围的原因。

您还可以使用 arc diff --preview只生成一个差异,而不将其发送以供审查。这将让您在将更改提交给其他人之前预览更改。

另见:

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

关于git - 你能对特定的 git 分支进行 diff 分析吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819252/

相关文章:

php - arc lint 命令失败并出现错误 #1

git - Phabricator 审查所有提交

git - 为什么 Git 在 Cygwin 中与 Windows 7 终端有不同的配置?

git - 为什么GitHub调用国外提交,一个 "Pull Request"?

git - 从 git 历史记录中删除垃圾邮件

phabricator - 如何在 phabricator 中重新打开差异审查?

phabricator - 如何在Phabricator中禁用 "test plan"强制执行?

git - 是否可以使用 git-bisect 来追踪可能存在于两个存储库之一中的问题?

php - PHP 7.0 Phabricator 安装错误

git - Arc diff 卡在 git commit 上