私はArcanistとgitの両方にかなり慣れていません。マスターではなく、現在チェックアウト/作業中のgitブランチに対してarc diff(Phabricator Differentialインスタンスを作成できます)私にとって、 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]」を実行する必要があるのでしょうか?ただし、Phabricatorインスタンスを汚染したくないので、確実にしたいと思います。
また、答えが正しい方法を説明している場合、「あなたは間違っています」という回答を受け取ることができてうれしいです。
一般的に、_arc diff <branch>
_はあなたが望むことをします。 (ローカルトピックブランチではなく、すでにブランチにいる場合は、代わりに_arc diff Origin/<branch>
_を試してください。)
このように呼び出されると、arc
は実際にブランチの先端の_merge-base
_と作業コピーの現在のコミットに対して差分をとりますが、通常これは意図したとおりです。本当にブランチチップに対して差分を生成したい場合は_arc diff --base git:<branch>
_を使用できますが、この差分にはbranch
に対するコミットundoの変更が含まれます_git diff <branch>..HEAD
_のように、分岐点の子孫です。
すべての場合において、_arc which <commit>
_を使用して、_arc diff
_が何をするかをプレビューできます。これは、どのリビジョン範囲が選択されるかを説明し、どの変更が含まれているかを正確に確認するコマンドを表示し、その範囲が選択される理由を説明します。
_arc diff --preview
_を使用して、レビュー用に送信せずに、差分のみを生成することもできます。これにより、変更を他の人に送信する前にプレビューできます。
こちらもご覧ください:
https://secure.phabricator.com/book/phabricator/article/arcanist_commit_ranges/
Evanの回答は、gitワークフローのベストプラクティスをより反映しているため、一般的に望ましいものです。可能であればそれに従うことをお勧めします。
迅速な修正が必要で、プッシュ先と同じブランチで作業(チェックアウト)している場合は、arc diff HEAD^
またはHEAD~
単一のコミットの場合、またはarc diff HEAD~N
N件のコミット。