Front End

15 out, 2018

GIT: tenho que voltar para uma versão antiga, e agora?

Publicidade

Em um belo dia, estávamos trabalhando na versão v2.20.0, sucessora da versão v2.19.0 da nossa aplicação. Chegou pra gente uma requisição na qual teríamos que corrigir um bug na versão v2.19.0, pois era a versão que estava em produção. De acordo com nossa semântica de versionamento, essa correção geraria uma nova versão a partir da v2.19.0, que seria a versão v2.19.1. Após o término, teríamos que adicionar essas alterações para a versão v2.20.0 que era a nossa linha principal de desenvolvimento.

O sistema de versão usado pela nossa equipe é o Git.

Partindo desse cenário, mostrarei os comandos usados para chegarmos até a versão antiga e adicionar as alterações na linha principal de desenvolvimento.

Importante: Existem muitos fatores envolvidos nessa retomada de versão. Dependendo do tamanho da sua equipe, cada membro poderia estar trabalhando em branches diferentes para a versão v2.20.0. Você já poderia ter PR (pull request) para ser aprovado e poderia estar resolvendo algum conflito de alguma feature – enfim, vários cenários. Mas o objetivo principal aqui é mostrar como faremos essa retomada de versão. Dependendo de como você gerencia e em qual área da aplicação será feita a correção, isso tudo que falei pode não ser um problema pra você.

Voltando para versão antiga

Vamos imaginar que você está na sua linha de comando dentro da branch develop.

1. Liste todas as versões.

Comando para listar as versões: git tag .

Por exemplo:

$[develop] git tag

v2.15.0
v2.16.0-beta1
v2.16.0-beta2
v2.16.0
v2.17.0
v2.18.0
v2.19.0

Se a quantidade de versões é grande, você pode digitar git tag -l “v2.*” para listar apenas as versões 2.x.

2. Faça o checkout para a versão desejada. No nosso caso, a versão v2.19.0.

$[develop] git checkout v2.19.0

Sua tela se parecerá com essa:

Nesse momento, todos os arquivos da sua aplicação voltaram para o estado antigo. Todas as modificações e outros arquivos adicionados a partir da versão v2.19.0 não existem.

Você está dentro da versão [v2.19.0].

Para as etapas posteriores, podem existir várias maneiras de fazer. Vou mostrar a que usamos.

3. Criando uma nova branch.

Criamos uma branch chamada feature-bugfix a partir da versão v2.19.0, pois com isso manteremos os commits separados para um maior controle.

Por exemplo:

$[v2.19.0] git checkout -b feature-bugfix v2.19.0

Ficará dessa maneira.

$[feature-bugfix]

4. Gerando uma nova versão.

Após a correção dos bugs, adicione e comite suas alterações. Para adicionar, eu gosto sempre de usar o git add ..

Comitando as alterações.

$[feature-bugfix] git commit -m "finish bugfix"

Vamos gerar a versão v2.19.1.

Podemos gerar através da linha de comando, ou se você usa o GitHub como repositório, você pode também gerar a versão por lá. Particularmente eu gosto quando a gente gera versões no GitHub, pois podemos escrever um markdown sobre a versão.

Gerando pela linha de comando:

$[feature-bugfix] git tag -a v2.19.1 -m "Version v2.19.1, bugfix"

Realizamos o merge, na linha de comando:

$[develop] git merge v2.19.1

Na hora do merge tivemos alguns conflitos em alguns arquivos. Resolvemos os mesmos, e depois realizamos o commit das alterações.

Obrigado e até a próxima!