Git ramificando, em seguida, excluindo o código do mestre

0

Estamos trabalhando em uma base de código com uma ramificação git [master] .

Chegamos a um ponto em que precisamos realmente ramificá-lo para um recurso e remover esse recurso do branch master.

Portanto, atualmente temos

[master] <- one branch with feature 1 and feature 2

Mas eu quero que pareça com isso

[master]    <- only feature 1
[feature-2] < - feature 1 and feature 2 (what the master is now)

Qual é a melhor maneira de fazer isso? A única maneira que posso pensar é criar [feature-2] branch do master, então basta deletar todo o código que eu não quero no master.

No entanto, podemos ter correções de erros, etc., para o recurso 1 que precisam ser feitas em [master] e, em seguida, mescladas em [feature-2] .

Eu não posso simplesmente ramificar a partir de um commit antigo, já que os dois recursos foram desenvolvidos de forma um tanto concorrente.

Existe uma maneira de lidar melhor com esse cenário para que eu possa mesclar ramificações, etc.?

Obrigado

    
por noShowP 26.08.2015 / 22:09

2 respostas

1

Se acontecer de você ter um commit anterior onde você acabou de confirmar feature-1 , você pode simplesmente apontar o branch master para o commit.

De acordo com this , você pode conseguir isso executando:

git checkout master
git reset --hard <hash_of_the_commit>

Se não, acho que a única maneira de conseguir isso é fazer o que você disse, ramificando e excluindo qualquer código indesejado.

Quanto à segunda pergunta, você provavelmente desenvolverá o hotfix em uma ramificação diferente e poderá aplicá-lo a qualquer outra ramificação que precisar.

git checkout master
git merge hotfix
git checkout feature-1
git merge hotfix
git checkout feature-2
git merge hotfix

Você pode ver mais sobre este aqui , que descreve exatamente o que você está pedindo.

    
por 26.08.2015 / 22:44
0

Acho que a maneira mais lógica é manter o código estável para os dois recursos na ramificação master e o código de desenvolvimento relacionado ao recurso 1 em uma ramificação feature-1 e o código da feição 2 em outra ramificação% código%. Quando seu código se torna estável nesses ramos, você pode mesclá-los em feature-2 .

Para fazer isso, crie o branch master , em feature-2 do a master para o último commit antes de iniciar o feature 2, então crie o branch git reset --hard .

    
por 26.08.2015 / 22:44

Tags