¿Cómo copio todos los archivos en un directorio de otra rama? Puedo hacer una lista de todos los archivos de ese directorio haciendoGit: copie todos los archivos en un directorio desde otra rama
git ls-tree master:dirname
A continuación, puedo copiar todos los archivos de forma individual haciendo
git checkout master -- dirname/filename
Sin embargo, el uso de comodines ha sido hasta ahora un total fracaso. Esto no hace nada:
git checkout master -- dirname/*.png
Aunque supongo que puedo usar un script bash para hacer eso, tiene que haber una manera más fácil, ¿verdad?
¿Qué tal si quisiera conservar los mensajes de confirmación para los archivos copiados? – totels
@totels, estrictamente hablando, no hay mensajes de confirmación asociados con los archivos; el mensaje de compromiso está asociado con el objeto de compromiso mismo. Esto es lo que supongo que quiere: 'git checkout master - dirname; git add dirname; git commit -c $ COMMIT_SHA1 --reset-author; 'donde' $ COMMIT_SHA1' podría ser como 'branch_a' y sería el objeto commit que tiene el mensaje de confirmación que desea. No sé de improviso cómo determinar mediante programación la confirmación con el cambio más reciente a 'dirname' –
Esto tiene un efecto secundario muy extraño. Copia 'dirname', pero también copia los archivos que están en' .gitignore' de la rama 'master'. ¿Alguna idea de por qué es eso? – Milimetric