La pregunta
¿Cuáles son ejemplos específicos de commit-ish y tree-ish en Git?
La pregunta de Stack Overflow "¿Qué significa árbol-ish en git?" trata específicamente sobre el árbol, pero quiero comprender más sobre ambos .
Antecedentes
Usos en la documentación
La documentación de Git hace varias referencias a "commit-ish" y "tree-ish". Por ejemplo, si está examinando el código fuente de Git :
$ git grep --files-with-matches --extended-regexp "commit(-)*ish"
config.txt
git-describe.txt
git-fast-import.txt
git-name-rev.txt
git-push.txt
git-rebase.txt
git-rev-parse.txt
git.txt
gitcli.txt
glossary-content.txt
howto/revert-branch-rebase.txt
revisions.txt
y
$ git grep --files-with-matches --extended-regexp "tree(-)*ish" | \
$ grep --invert-match RelNotes
diff-format.txt
diff-generate-patch.txt
git-archive.txt
git-cat-file.txt
git-checkout.txt
git-diff-index.txt
git-diff-tree.txt
git-ls-files.txt
git-ls-tree.txt
git-merge-tree.txt
git-read-tree.txt
git-reset.txt
git-svn.txt
git.txt
gitcli.txt
gittutorial-2.txt
glossary-content.txt
revisions.txt
Definiciones
La documentación de Git define qué son "commit-ish" y "tree-ish" :
<tree>
Indica un nombre de objeto de árbol.
<commit>
Indica un nombre de objeto de confirmación.
<tree-ish>
Indica un árbol, un compromiso o un nombre de objeto de etiqueta. Un comando que toma un
<tree-ish>
argumento en última instancia, quiere operar en un<tree>
objeto, pero automáticamente elimina las referencias<commit>
y los<tag>
objetos que apuntan a un<tree>
.<commit-ish>
Indica un nombre de objeto de confirmación o etiqueta. Un comando que toma un
<commit-ish>
argumento en última instancia, quiere operar en un<commit>
objeto, pero automáticamente elimina las referencias a los<tag>
objetos que apuntan a un<commit>
.
La documentación no es lo suficientemente clara
A pesar de que la documentación anterior define lo que son "commit-ish" y "tree-ish", todavía lo encuentro demasiado vago y poco claro.
¿Cuáles son ejemplos específicos de "commit-ish" y "tree-ish", y en qué se diferencian entre sí?
stash@{0}
. Me gustaría saber dónde encaja eso en todo esto. ¿Hay otras cosas como el alijo (my-thing@{0}
)? ¿El alijo es solo un<refname>
?Nota para hablantes no nativos de inglés [sic!]: "-Ish" es un sufijo que se puede aplicar a un adjetivo para indicar "tener cualidades como" o "levemente" - ver http://chambers.co.uk / search /? query = ish & title = 21st
Por lo tanto, "árbol-ish" - como un "árbol" ... "commit-ish" - como un "compromiso"
por ejemplo, "Marte parece una estrella rojiza" (¡la "d" se duplica!); "la comida del plato no estaba caliente, sino tibia"
Creo que esto ayuda a explicar mejor "qué son ...", ya que explica el uso del lenguaje.
fuente