1
resposta

Fluxo de um desenvolvimento

Então digamos que num fluxo de desenvolvimento (é muito particular, depende do caso), eu teria meu repositório local master que podemos dizer que será uma cópia do código final que está ou num servidor local ou no GitHub. Se eu for iniciar um novo desenvolvimento faria

1. Um pull na branch master do meu repositório local (ai eu teria certeza eu meu master estamos alinhados com o do servidor)
2. Criaria uma branch para esse meu desenvolvimento (que também seria uma cópia da minha branch local master, diga-se de passagem de passagem é a cópia do que está no servidor)
3. Ao final de meu dev. faço um merge dessa minha branch de dev para a branch master local.

Dúvidas

    1. No ponto 3, ao tentar realizar o merge da branch de dev. para master, o git já alertaria que há uma nova versão na minha master do servidor (é claro, caso alguém tenha subido algo para master do servidor);
    2. Caso ele alerte e eu tenha que realizar um pull, eu teria que assegurar que na minha master local não tenha nenhum alteração, certo? se houvesse, o que ocorreria? ele faria um merge automaticamente? e ai depois eu só revisaria e subiria isso para master do servidor? Porque eu posso perder minha alteração que se encontra na master local (é claro, não é aconselhável trabalhar na branch master local).

Obs.: master do servidor é a master da master, minha produção

1 resposta

Olá Vitor, tudo bem? Espero que sim

Peço desculpas pela demora em obter uma resposta

Suas dúvidas são enriquecedoras, no dia a dia de uma pessoa desenvolvedora entender como esse fluxo funciona é com certeza um diferencial. Irei responder cada pergunta separadamente para que possa gerar uma maior compreensão.

  1. "No ponto 3, ao tentar realizar o merge da branch de dev. para master, o git já alertaria que há uma nova versão na minha master do servidor (é claro, caso alguém tenha subido algo para master do servidor)";

    • Caso as alterações ocorram no mesmo trecho/linha de código, irá ser ocasionado um conflito, ou seja o git não saberá o que manter no arquivo. Nesse caso, ele perde a capacidade de decisão e espera o seu auxílio para escolher o que manter ou remover. No entanto, caso a mudança seja por exemplo adicionar um novo arquivo, o próprio git aceita e irá realizar o merge automaticamente. Mas caso tenha novos arquivos nos seu servidor será necessário primeiramente dar o pull para trabalhar sempre com a versão mais atualizada, A título de curiosidade, no mercado quando trabalhamos em equipe usando o git e estamos em um mesmo repositório, a regra de ouro é sempre realizar o git pull antes de realizar qualquer alteração no código.
  2. "Caso ele alerte e eu tenha que realizar um pull, eu teria que assegurar que na minha master local não tenha nenhuma alteração, certo? se houvesse, o que ocorreria? ele faria um merge automaticamente? e aí depois eu só revisaria e subiria isso para master do servidor? Porque eu posso perder minha alteração que se encontra na master local (é claro, não é aconselhável trabalhar na branch master local)".

    • Caso tenha mudanças o git ele alerta e solicita o pull para atualizar. Porém, quando há erros ou conflitos a possibilidade do merge é negada impossibilitando o merge automático, até que sejam realizadas as alterações devidas de forma manual. Caso não tenha conflitos, e o merge automático ocorra com sucesso, a responsabilidade da revisão após as mudanças fica para o desenvolvedor ou desenvolvedora.E caso alguma alteração não tenha saído da forma esperada, há possibilidades de retornar para um estado anterior que seja seguro e isso ocorre através dos comandos git log e git revert.Nesta situação de voltar a um estado anterior, primeiro executamos o comando git log para sabermos a identificação do commit que desejamos desfazer, por exemplo:

        git log 

      A imagem mostra parte do terminal do git bash, com o fundo     preto, em destaque ao topo da imagem temos o computador do usuário e também  a pasta no qual o terminal está aberto, com um maior destaque logo abaixo temos o  commit e ao lado o número ou identificador, há um sublinhado(uma  linha em vermelho embaixo desse identificador) para dar um maior destaque na área de maior interesse para a necessidade do aluno.

      A identificação ou Hash do commit logo a frente a palavra commit, que são os números e letras que o identificam. Copie esse valor e cole a frente do comando git revert

      git revert HASH_DO_COMMIT

      Isso fará com que o commit informado seja desfeito, retirando todas as suas alterações feitas por ele.

Espero ter ajudado.

Abraços e bons estudos!

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