Pergunta

Então, um amigo trabalhou em um monte de código que ele nunca versionou e está entregando para mim.Ele inicialmente me deu a versão A, embora tivesse uma versão B mais recente disponível.Coloquei A em um repositório git (por exemplo, Visual Studio Team Services) e, em seguida, fiz alguns commits, resultando na versão C.Agora ele colocou a versão B em um repositório git (por exemplo, Bitbucket).Como posso comparar as versões C e B e mesclar todas as diferenças entre (B,A) e (C,A) para obter uma versão final D que tenha as atualizações dele e as minhas?Tenha em mente que os repositórios no Bitbucket e no TFS (versões B e C respectivamente) não têm commits git comuns, embora ambos venham da mesma versão base A.

Posso ver algumas maneiras de fazer isso, mas não tenho certeza dos contras de cada uma:1) Adicione o Bitbucket versão B como upstream à minha versão C do TFS, busque upstream/master e faça um git diff.2) Copie os arquivos da versão B para o diretório que contém a versão C e, em seguida, envie-os como se eu tivesse alterado os arquivos manualmente.3) Algo totalmente diferente, como rebase.

Meu entendimento do git é muito básico, então explique como se eu tivesse 5 anos (bem, na verdade não, mas você sabe o que quero dizer).

Observação:Não há problema em fazer todas as alterações de A para B em um commit no histórico final do repositório, mas seria bom preservar os commits individuais entre A e C.

Além disso, da versão A para a versão B, o amigo não manteve a estrutura de diretórios, ele moveu todo o conteúdo para um subdiretório da raiz.Portanto, se a versão A possui o arquivo a.txt, a versão B possui o arquivo TRUNK/a.txt.

Foi útil?

Solução

Simplesmente:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top