
Digamos que eu tenha um arquivo filename
em um repositório git no subirectory dir1
com 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 ( filename
també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 filename
só existiu dir1
resultando em um histórico mais ou menos assim:
v4 --- v7 --- v8 --- v9 --- v10
Acho que poderia tentar remover o arquivo dir2
e 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 dir2
onde ele está no histórico, mas quero alterar o commit chamado v4
acima para tornar o arquivo uma versão do arquivo em dir1
.