¿Puedes ser diferente de una twig particular de Git?

Soy bastante nuevo tanto para Arcanist como para git. Me gustaría poder crear una diferencia de arco (instancia de diferenciador de Phabricator utilizando Arcanist) contra una twig de git en la que estoy actualmente trabajando / desprotegido (y tengo una confirmación local sin empujar) en lugar de la maestra. Para mí, los documentos de arco no están claros en esto. ¿Es posible? ¿Cómo? Sería bueno si la respuesta funciona para 2-3 compromisos locales sin empujar también.

También "arc help diff" da:

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. 

Tal vez solo necesito hacer "arc diff [commit]" donde [commit] es la punta de la twig de destino? Pero me gustaría estar seguro, porque no quiero contaminar nuestra instancia de Phabricator.

Además, me complace recibir respuestas de "lo estás haciendo mal" si la respuesta explica cómo hacerlo bien.

En general, arc diff <branch> hará lo que quieras. (Si ya está en la twig, en lugar de una twig de tema local, pruebe arc diff origin/<branch> lugar).

Cuando se invoca de esta manera, el arc difiere en realidad de la merge-base de merge-base de la sugerencia de la twig y la confirmación actual en la copy de trabajo, pero generalmente esto es lo que usted pretende. Si realmente quieres generar un diff contra la sugerencia de bifurcación puedes usar arc diff --base git:<branch> , pero esta diferencia includeá cambios que deshacen cualquier commit en la branch que sea descendiente del punto de bifurcación, al igual que git diff <branch>..HEAD haría.

En todos los casos, puede usar el arc which <commit> para previsualizar lo arc diff hará el arc diff . Esto explicará qué range de revisión se seleccionará, le mostrará el command para ver exactamente qué cambios se incluyen y explicará por qué se seleccionó ese range.

También puede usar arc diff --preview para generar solo un diff, sin enviarlo para su revisión. Esto le permitirá previsualizar los cambios antes de enviarlos a cualquier otra persona.

Ver también:

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

La respuesta de Evan es generalmente preferible porque refleja más las mejores prácticas de flujo de trabajo de git. Recomiendo seguir eso si puedes.

Si necesita una solución rápida y está trabajando en (desprotegida) la misma twig a la que desea presionar, también puede hacer arc diff HEAD^ o HEAD~ para una sola confirmación, o arc diff HEAD~N para N commits.