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:
- revertir un parche generado por
git diff
y aplicarlo en el archivo en el árbol de trabajo - 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.