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
.