2

Muito bom! O reflog é muito útil mesmo e pode nos salvar dessas situações em que um branch parece ter "sumido".

Pra complementar, tem esse post que explica em mais detalhes o reflog.

Quanto a "O histórico do reflog expira após aproximadamente 30 a 90 dias", na verdade é assim: 30 e 90 dias são os valores default para duas configurações diferentes.

Uma é o gc.reflogExpireUnreachable (cujo default é 30 dias), e diz respeito à entradas do reflog que não são alcançáveis a partir do branch atual. A segunda é gc.reflogExpire (cujo default é 90 dias), e é para qualquer entrada do reflog.

Mas vc pode mudar esses valores. Por exemplo, se quiser aumentar para 180 dias:

git config --global gc.reflogExpire 180.days

Por fim, vale lembrar que as entradas que já expiraram só são removidas quando o Git roda o seu GC. E o GC geralmente executa por debaixo dos panos quando vc roda outros comandos, como commit, merge, entre outros. Claro que vc também pode rodar diretamente git gc ou git reflog expire, mas não é algo estritamente necessário.

Carregando publicação patrocinada...
1

Bacana demais, muito obrigado pela contribuição, acho que os valores defaults de fato são suficientes para a maioria dos casos.

É incrível ver como na correria do dia a dia, ficamos apenas na superfície do conhecimento.