¿Cómo copio todos los archivos en un directorio desde otra rama? Puedo enumerar todos los archivos en ese directorio haciendo
git ls-tree master:dirname
Entonces puedo copiar todos los archivos individualmente haciendo
git checkout master -- dirname/filename
Sin embargo, el uso de comodines hasta ahora ha sido un fracaso total. 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?
git checkout master -- dirname; git add dirname; git commit -c $COMMIT_SHA1 --reset-author;
dónde$COMMIT_SHA1
podría serbranch_a
y sería el objeto de confirmación que tiene el mensaje de confirmación que desea. No sé de antemano cómo determinar mediante programación el compromiso con el cambio más reciente adirname
dirname
, pero también copia cualquier archivo que se encuentre en.gitignore
lamaster
rama. ¿Alguna idea de por qué es eso?cherry-pick
. Aplica confirmaciones de otras ramas, pero solo los archivos que se modificaron en las confirmaciones que desea.Si no hay espacios en las rutas y está interesado, como estaba yo, en archivos de extensión específica solamente, puede usar
fuente
git checkout master -- *.c