¿Cómo hacer que los padres de una fusión se comprometan en git?
140
Algunos comandos git toman al padre como una revisión; otros (como git revert), como número principal. Cómo conseguir a los padres para ambos casos. No quiero usar el comando de registro gráfico, ya que eso a menudo requiere desplazarse hacia abajo por un árbol largo para encontrar el segundo padre.
git rev-list También puede mostrar los hash de los padres, aunque primero enumerará el hash para un commit:
$ git rev-list --parents -n 1 <commit>
Si desea examinar a los padres, puede referirse a ellos directamente con quilates <commit>^1y <commit>^2, por ejemplo:
git show <commit>^1
Esto generaliza; para una fusión de pulpo puede referirse al enésimo padre como <commit>^n. Puede referirse a todos los padres con <commit>^@, aunque esto no funciona cuando se requiere una sola confirmación. Pueden aparecer sufijos adicionales después de la enésima sintaxis principal (por ejemplo <commit>^2^, <commit>^2^@), mientras que no pueden aparecer después ^@( <commit>^@^no es válida). Para más información sobre esta sintaxis, lea la rev-parsepágina del manual.
Respondiendo a mi propia pregunta: los resultados de 'git rev-list --parents -n 1 <somehash>' son: <somehash> <parent1> <parent2>. Es decir, los padres son uno numerados.
@jefromi, realmente quiero que la parte "También tenga en cuenta que la salida de registro normal muestra ..." está en la parte superior de su respuesta. :)
Adam Monsen
3
git logy git showgenera cosas muy diferentes cuando solo hay un padre. Prefiere git logsi quieres consistencia.
Noel Yap
Esta respuesta no funciona en mi máquina Ubuntu con git (v2.17.1). No veo el Mergearchivo en la git log -1salida.
mja
29
La siguiente es la forma más simple que he encontrado para ver a los padres de una fusión.
git log
ygit show
genera cosas muy diferentes cuando solo hay un padre. Prefieregit log
si quieres consistencia.git (v2.17.1)
. No veo elMerge
archivo en lagit log -1
salida.La siguiente es la forma más simple que he encontrado para ver a los padres de una fusión.
fuente
git cat-file -p 3706454
es lo mismo pero aún más corto :)git log --pretty=raw -1 3706454