Digamos que eu tenha um arquivo filename em um repositório git em ʻaarectory dir1 com um histórico como este:
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 esse arquivo. Agora eu desenterrei uma versão antiga desse arquivo ( filename também) que por engano foi confirmada em outro subdiretório dir2 . Esta versão mais antiga só "existe" em um conjunto de alterações, digamos:
v4
O problema agora é, eu posso reescrever o histórico destes (para git) dois arquivos para que ele apareça como se filename existisse apenas em dir1 resultando em um histórico como este:
v4 --- v7 --- v8 --- v9 --- v10
Acho que posso tentar remover o arquivo em dir2 e confirmá-lo como uma nova versão do arquivo em dir1 , mas isso atrapalhará o histórico real do arquivo para que a versão mais antiga o arquivo aparecerá como o mais novo.
Eu tenho muito pouca experiência com o "ajuste" do histórico de repositórios git, então não sei como fazer isso, mas acredito que o rebase possa ser a resposta? Eu sou o único que trabalha no repositório, então minha única preocupação será sincronizar essas mudanças em dois computadores.
Eu acho que o que eu quero fazer é deixar o arquivo originalmente em dir2 onde ele está no histórico, mas eu quero mudar o commit chamado v4 acima para tornar o arquivo uma versão do arquivo em dir1 .