
Digamos que tengo un archivo filename
en un repositorio git en subirectory dir1
con un historial similar a este:
v7 --- v8 --- v9 --- v10
El archivo es parte de un repositorio más grande con varios subdirectorios, pero solo los conjuntos de cambios anteriores afectan a este archivo. Ahora he desenterrado una versión antigua de ese archivo ( filename
también) que por error se envió a otro subdirectorio dir2
. Esta versión anterior sólo "existe" en un conjunto de cambios, por ejemplo:
v4
El problema ahora es, ¿puedo reescribir el historial de estos dos archivos (en git) para que parezca como si filename
solo hubieran existido, lo que da como dir1
resultado un historial similar a este?
v4 --- v7 --- v8 --- v9 --- v10
Supongo que podría intentar eliminar el archivo dir2
y enviarlo como una nueva versión del archivo dir1
, pero eso arruinará el historial real del archivo, de modo que la versión más antigua del archivo aparecerá como la más nueva.
Tengo muy poca experiencia con "modificar" el historial de los repositorios de git, así que no sé cómo hacerlo, pero supongo que rebase puede ser la respuesta. Soy el único que trabaja en el repositorio, por lo que mi única preocupación será sincronizar estos cambios en dos computadoras.
Supongo que lo que quiero hacer es dejar el archivo originalmente en dir2
el lugar donde está en el historial, pero quiero cambiar la confirmación llamada v4
anteriormente para que el archivo sea una versión del archivo en formato dir1
.