Como mesclar um repositório git depois de dividido sem histórico

0

Eu tenho um repositório git mestre, e outro repositório, que contém código que uma vez foi copiado da outra base de código sem histórico, mas depois versionado pelo git novamente.

Assim, o segundo repositório tem um histórico muito mais recente, começando em algum estado presente como um commit no repositório principal.

Qual seria a melhor maneira de mesclar essa bagunça novamente? Eu acho que primeiro preciso descobrir em que cometer a cópia foi feita, como fazer isso? Como mesclar o repositório como um novo branch, mas com histórico completo então?

    
por dronus 15.10.2014 / 15:17

1 resposta

0

Primeiramente, os patches de exportação do antigo repositório.

Aplique patches um por um, sequencialmente no novo repositório. Alguns dos primeiros devem causar conflitos. Estes devem ser os que já estão no repositório. Depois de obter o que não está falhando, você pode começar a partir daí para criar o histórico alterado no novo repositório.

Seguem-se os problemas com este método:

  • precisa se comprometer um por um.
  • autor e mensagem de commit são perdidos.

Existe outro método, que é usar o hash de commit como força bruta (veja gitbrute ) do primeiro commit não conflitante. Em seguida, crie um pacote do repositório desse commit até o último commit no repositório antigo. Aplique este pacote no novo repositório.

brute forçando o commit hash não é tarefa fácil, vendo o projeto fornecido, que define o prefixo de um commit, você começaria.

    
por 19.10.2014 / 19:36

Tags