Git - rebaseando um arquivo no histórico passado desse arquivo

Git - rebaseando um arquivo no histórico passado desse arquivo

Digamos que eu tenha um arquivo filenameem um repositório git no subirectory dir1com um histórico mais ou menos assim:

v7 --- v8 --- v9 --- v10

O arquivo faz parte de um repositório maior com vários subdiretórios, mas apenas os conjuntos de alterações acima afetam este arquivo. Agora eu desenterrei uma versão antiga desse arquivo ( filenametambém) que por engano foi enviada para outro subdiretório dir2. Esta versão mais antiga "existe" apenas em um conjunto de alterações, digamos:

v4

O problema agora é: posso reescrever o histórico desses (para git) dois arquivos para que pareça que filenamesó existiu dir1resultando em um histórico mais ou menos assim:

v4 --- v7 --- v8 --- v9 --- v10

Acho que poderia tentar remover o arquivo dir2e enviá-lo como uma nova versão do arquivo dir1, mas isso atrapalhará o histórico real do arquivo, de modo que a versão mais antiga do arquivo aparecerá como a mais recente.

Tenho muito pouca experiência em "ajustar" o histórico dos repositórios git, então não sei como fazer isso, mas acho que rebase pode ser a resposta. Eu sou o único trabalhando no repositório, então minha única preocupação será sincronizar essas alterações em dois computadores.

Acho que o que quero fazer é apenas deixar o arquivo originalmente dir2onde ele está no histórico, mas quero alterar o commit chamado v4acima para tornar o arquivo uma versão do arquivo em dir1.

informação relacionada