Digamos que tengo un acuerdo de recompra que incluye esta estructura de directorios:¿Cómo puedo mover un directorio en un repositorio de Git para todas las confirmaciones?
repo/
blog/
_posts/
some-post.html
another-file.txt
quiero mover _posts
al nivel superior de la cesión temporal, por lo que la estructura se verá así:
repo/
_posts/
some-post.html
another-file.txt
Este es lo suficientemente simple con git mv
, pero quiero hacer que la historia parezca _posts
siempre existía en la raíz del repositorio, y quiero poder obtener el historial completo de some-post.html
a través de git log -- _posts/some-post.html
. Me imagino que puedo usar magia con git filter-branch
para lograr esto, pero no he descubierto exactamente cómo hacerlo. ¿Algunas ideas?
También es * mucho * más rápido de usar' --index-filter', ya que no tiene que ver el árbol. – Cascabel
Yeah index -filter es más rápido, pero no funcionará porque los comandos que se muestran no afectan el índice. Solo tiene que hacer manipulaciones de índice si desea usar index-filter (por ejemplo, 'git rm -cached' en lugar de' rm') – sehe
¿Puedo guardar etiquetas también? Parece que se han ido en mi caso. – Michael