Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvidas

1) Ao invés de fazer merge só da branch hotfix em development, não seria melhor fazer um merge da master dentro da development para garantir que quando eu enviar a development ela vai estar bem atualizada com a master? Porque senão o código da development vai alterar a master.

2) Quando eu crio a branch release a partir da dev, ela já pega todo o código da dev sozinha? Não preciso dar pull nada?

3) Se eu não tiver nenhuma correção para fazer ainda assim crio a branch release para mandar pra produção o código?

1 resposta
solução!

Oi, Karolina, tudo bem?

Peço desculpas pela demora em responder!

Vamos analisar cada uma das suas dúvidas individualmente.

1) Ao invés de fazer merge só da branch hotfix em development, não seria melhor fazer um merge da master dentro da development para garantir que quando eu enviar a development ela vai estar bem atualizada com a master? Porque senão o código da development vai alterar a master.

Durante o desenvolvimento do curso o instrutor utilizou um padrão desenvolvimento, chamado de Git Flow que apresenta estratégias para trabalhar em diferentes branches que incluem: main, development, feature, release e hotfix, cada uma com sua especificidade.

Dessa forma, ao adotarmos a estratégia do Git Flow precisamos seguir as diretrizes que estão colocadas com o objetivo de auxiliar na organização do versionamento de códigose portanto, não é aconselhável realizar o merge da master/main dentro da branch development, por padrão é preciso mesclar a branch hotfix tanto na master/main quanto na development, já que na branch hotfix apenas problemas pontuais são corrigidos.

2) Quando eu crio a branch release a partir da dev, ela já pega todo o código da dev sozinha? Não preciso dar pull nada?

Quando criamos uma branch carregamos o histórico de commits da branch anterior, então se criarmos a branch Release, ela carregará os commits da branch Development. Para que a branch não carregue os commits de uma outra branch é necessário utilizar o comando:

git checkout --orphan <nome da branch>

Supondo que eu queira criar uma branch com o nome titulo que não carregue os commits da branch main o comando seria escrito da seguinte maneira:

git checkout --orphan titulo

Aqui vale ressaltar que nesta aula o instrutor não utiliza o pull, pois ele está trabalhando no repositório local. Em um cenário onde essas branches estão adicionadas a um repositório remoto, como o GitHub e há vários contribuidores no projeto, é necessário usar os comandos pushe pull, para manter os repositórios remoto e local sempre atualizados e evitar conflitos, mas reforço que durante o curso estamos apenas trabalhando com o repositório local.

3) Se eu não tiver nenhuma correção para fazer ainda assim crio a branch release para mandar pra produção o código?

De acordo com as boas práticas de desenvolvimento com o Git através do Git Flow, é necessário criar a Branch Release, pois ela serve como ponte para fazer o merge da Development para a Master, atuando como um ambiente de homologação para todas as funcionalidades adicionadas. Nela conseguimos realizar os teste necessários para que tudo esteja funcionando adequadamente e só então após corrigir todos os problemas e ter certeza de que todo o desenvolvimento foi feito de maneira correta, podemos enviar as alterações para a Main.

Para te ajudar a compreender mais sobre o processo de desenvolvimento apresentado pelo instrutor na elaboração das branches de feature, development, hotfix e release, recomendo este artigo da Alura que explica as funcionalidades, benefícios e quando utilizar.

Espero ter ajudado. Caso tenha outras dúvidas, estarei à disposição!

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!