arc diff 一个已经通过在 git 中创建新分支推送到远程的分支

use*_*895 0 git phabricator

这是我需要做的情况。我在本地有一个分支,例如 testBranch (其中包含修改后的文件file.txt)。我已经将 testBranch 推送到远程git push origin testBranch。所以我不能 arc diff 以便其他人可以通过 Phabricator 查看我的代码(因为我已经推送了)

我的同事所做的是创建一个新分支,例如 testBranch1,如下所示:

git checkout testBranch
git merge master            // merge master to testBranch

git checkout master
git pull --rebase           // git pull while my local update reserved

git checkout testBranch
git merge master             // merge master to testBranch

git checkout master
git merge testBranch          // merge testBranch to master

git reset origin/master      // set the current HEAD to origin/master in my local
git checkout -b testBranch1
arc diff
Run Code Online (Sandbox Code Playgroud)

现在其他人可以通过 Phabraicator 查看 newBranch1 中的修改file.txt。我不知道发生了什么以及为什么会这样。谁能解释为什么这有效?

CEP*_*EPA 5

Arcanist ( arc) 是预提交(也称为预推送)代码审查。一旦分支被推到原点,就已经违背了奥术师的目的。一旦你推送了,你有几个选择:

  1. 使用 删除原点上的分支git push origin --delete testBranch
  2. 运行arc diff命令时,告诉它你想要它的基础,如下所示:arc diff origin/master
  3. 执行上述步骤,但是,您应该注意,上面的行中没有 git Push,这就是解决问题的原因。