2012-04-05 12 views
6

Estoy buscando una solución simple para crear un archivo de archivos cambiados recientemente.Uso de Git para crear un archivo de archivos modificados

me sale este simple comando desde google

git archive -o update.zip HEAD $(git diff --name-only HEAD^) 

Cuando corro en GIT BUSH, que sigue diciendo diciendo fatal: No es un nombre de objeto válido

+1

que comando viene eso? (¿Cuál es la salida de 'git diff --name-only HEAD ^'? Estás en un repositorio válido, ¿no?) – Cascabel

+0

git diff --name-only HEAD^dará salida a una lista de archivos modificados que me gustaría archivo. He probado este comando con un repositorio de prueba, funciona como exptected. No funciona en mi verdadero repositorio de proyectos asp.net – Kuroro

+0

Sospecho que hay algunos que no pueden archivar? ¿binario? – Kuroro

Respuesta

11

estoy usando en this answer ese caso que me dice que

tar czf changed-files.tar.gz `git diff --name-only [diff options]` 

Por ejemplo, para creat e un archivo que contiene los archivos modificados en los últimos cuatro revisiones, lo haría

tar czf changed-files.tar.gz `git diff --name-only HEAD~4..` 

Esto supone –   por supuesto   – que HEAD~4 existe realmente.

+0

eckes, Gracias por señalar que HEAD puede usar de esta manera. – Kuroro

+0

-1: esta solución solo funciona si los archivos dentro del diff existen en HEAD, independientemente de la confirmación que elijas. –

1

utilizo este alias para incluir nuevos archivos no en CABEZA:

alias gittar='tar -czvf working-files.tgz \ 
       $(git status -s | sed -r "s/..(.*)/\1 /")' 
Cuestiones relacionadas