Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Range Cherry-pick

Em que casos seria interessante usar range no cherry pick?

Alem disso, como que eu passo um range de hashs sendo que os mesmos não parecem ser sequenciais?

Entendo a necessidade de utilizar ele para passar apenas determinados commits, mas , eu consigo passar para eles commits sem ser em um range de 1 a N por exemplo?

Existem boas práticas, ou métodos para melhorar na organização do código usando o cherry pick para interagir direto com a master e vice e versa ou seria melhor usar o stash mesmo para isolar certas funcionalidades?

Como funciona o fluxo de vocês quando desenvolvem utilizando GIT?

2 respostas
solução!

Fala, Nicholas!

Vamos lá:

Em que casos seria interessante usar range no cherry pick?

Quando você tem uma série de commits que você deseja aplicar (e não apenas um).

Alem disso, como que eu passo um range de hashs sendo que os mesmos não parecem ser sequenciais?

Na documentação do Git Revisions, há uma explicação sobre todas as ranges possíveis.

Para o repositório:

G   H   I   J
 \ /     \ /
  D   E   F
   \  |  / \
    \ | /   |
     \|/    |
      B     C
       \   /
        \ /
         A

É possível usar as ranges:

D                           G H D
D F                          G H I J D F
^G D                         H D
^D B                         E I J F B
^D B C                       E I J F B C
C                            I J F C
B..C                         C
B...C                        G H D E B C
B^-                          E I J F B
C^@                          I J F
B^@                          D G H E F I J
C^!                          C
B^!                          B
F^! D                        G H D F

Como funciona o fluxo de vocês quando desenvolvem utilizando GIT?

Existem alguns workflows, que vão dos mais simples aos mais elaborados.

A Atlassian, criadora do JIRA e do BitBucket, lista os seguintes workflows:

  • Com um servidor central e só a branch master
  • Com um branch pra cada funcionalidade
  • Git Flow, com branches por funcionalidade e por ciclo de vida (desenvolvimento, releases, correções)
  • Fork e Pull Request

Quando mais simples melhor.

Pra um projeto já em produção com muitos bugs ou com mais de uma versão (como uma biblioteca), vale o Git Flow.

Pra projetos open-source, vale o esquema de Fork/Pull Request.

Uma boa prática relacionada aos métodos ágeis e ao valor de Simplicidade é usar só a master, o que chamam de Trunk Based Development. Se for usar branches, só usar branches que duram muito pouco, as Short Lived Branches.

Referências: https://www.atlassian.com/git/tutorials/comparing-workflows

https://trunkbaseddevelopment.com/

https://trunkbaseddevelopment.com/short-lived-feature-branches/