Obtenha o git-repository commit em um ramo diferente do git-repository

2

Considere a seguinte configuração: Um Repositório1 fica no Bitbucket. Uma cópia de trabalho local está situada na minha máquina. Eu altero os arquivos localmente, confirmo e envio para o Repository1.

Mudanças no Repositório1 (no Bitbucket) (na ramificação "master") onde foram feitas somente por mim. Agora eu preciso colocar algumas delas em um "recurso" - ramificação de outro Repository2, que também fica no Bitbucket.

No entanto, o conteúdo do Repository2 é mais recente, as alterações feitas por uma equipe remota não são refletidas no Repository1 nem em minha cópia de trabalho. O Repository2 contém também mais arquivos, onde meu Repository1 contém apenas uma pequena parte dele.

No final, quero ter algumas das alterações no Repository1 (ramificação "master") mescladas com os arquivos mais novos no Repository2 (ramificação "feature").

No entanto, a única solução que eu conheço é pouco prática: classificar meus arquivos alterados e diferenciar manualmente & mesclá-los, copie-os para a minha cópia de trabalho local do Repository2, fazendo um commit & empurre depois.

Existe outro método? De preferência, algo que inclui mesclagem automática, onde é possível.

Obrigado antecipadamente!

    
por Strongground 25.02.2014 / 14:46

1 resposta

0

Há duas partes da sua pergunta: como gerenciar vários repositórios e como fazer sua mesclagem.

Existe algum motivo para você ter dois repositórios separados no BitBucket, em vez de um único repositório com várias ramificações? Supondo que há uma boa razão, você ainda pode usar seu repositório local para sincronizar com dois controles remotos diferentes, algo como

$ git fetch repo1 branch:master
$ git fetch repo2 branch:feature

Isso criará o mestre e o recurso de ramificações locais, mesmo que as ramificações nos repositórios remotos tenham o mesmo nome. Depois de fazer o que você tem a ver com essas ramificações, você pode enviar uma sintaxe semelhante:

$ git push repo1 master:branch
$ git push repo2 feature:branch

Depois de ter cópias locais das ramificações, você poderá mesclar suas alterações com

$ git checkout feature
$ git merge master

Se houver conflitos, é melhor resolvê-los manualmente, mas se tiver certeza de que o mestre está certo, você pode adicionar a opção -s theirs ao comando merge .

    
por 25.02.2014 / 18:37