tipos tag remove etiquetas crear git git-diff git-status

remove - git tag push



¿Cómo puedo obtener el contenido de un archivo desde el índice git? (3)

Tengo un archivo que ya se ha agregado a mi repositorio local. Lo he modificado en el árbol de trabajo, por lo que git status me muestra el archivo como modificado. Me gustaría saber cuál es el contenido del archivo guardado en el índice antes de configurar el archivo.

Puedo pensar en dos maneras de hacer eso:

  1. revertir un parche generado por git diff y aplicarlo en el archivo en el árbol de trabajo
  2. use git checkout-index , señale un archivo temporal y lea el contenido desde allí

hay una manera mas facil?


Hay tres maneras de obtener diferencias con git

para ver cuál es la diferencia entre el archivo en el directorio de trabajo y el índice, solo necesita:

git diff name_of_file

He escrito sobre esto con más detalle en elsewhere


Para eliminar un archivo del índice, no estoy seguro de que exista una forma de script preexistente, pero puede usar ls-files para consultar el índice:

$ git ls-files -s README 100644 67cfeb2016b24df1cb406c18145efd399f6a1792 0 README $ git cat-file blob 67cfeb2016b24df1cb406c18145efd399f6a1792 # etc.

Puedes poner los comandos juntos de esta manera:

git cat-file blob $(git ls-files -s README | awk ''{print $2}'')

(Aunque seguramente estoy reinventando la rueda aquí).

Sin embargo, si solo desea abrir el original y sus cambios en un editor, use el comando difftool . Copia la versión indexada en un archivo temporal para ti y abre vimdiff (o lo que quieras), y es muy flexible.


Use el prefijo : para acceder a los objetos en el índice actual (en etapas pero aún no comprometido).

git show :file

Consulte el manual de gitrevisions para más información.