Pregunta

¿Hay una forma sencilla de exportar / archivar sólo los archivos modificados a partir de un determinado cometer o una serie de confirmaciones en git? Parece que no puedo encontrar instrucciones claras para hacer esto (y soy nuevo en Linux / Git).

Estoy utilizando msysgit, y en su mayor parte estoy bien con la implementación de repositorios enteras, pero en muchos casos es mucho más eficiente para implementar pequeñas correcciones de algunos archivos a la vez.

Empujar / tirar / instalar Git en los servidores remotos no es realmente una opción ya que mi nivel de acceso varía entre los proyectos y clientes.

¿Hay una manera recta hacia adelante a (cálculo aproximado):

pipe 'diff --names-only' to 'git-archive'? 
¿Fue útil?

Solución

No creo que haya ninguna necesidad de involucrar a git-archivo. Usando --name-only, podría manchar a los archivos:

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

Ya que eres nuevo en Linux, esto podría necesitar alguna explicación:

Los acentos abiertos en la línea de comandos hacen que el shell para ejecutar primero el comando dentro de los acentos abiertos, a continuación, sustituir la salida de ese comando en la línea de comandos de tar. Por lo que el git diff se ejecuta en primer lugar, que genera una lista de nombres de archivos, uno en cada línea. Los saltos de línea se contraen a los espacios y toda la lista de archivos se colocan en la línea de comandos tar. Entonces tar se ejecuta para crear el archivo dado. Tenga en cuenta que esto puede generar líneas de comando bastante largo, así que si usted tiene un número muy grande de archivos modificados es posible que necesite una técnica diferente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top