My Humble Beginnings

Quando eu comecei a usar o Git, eu era bem paranoico sobre perder código. O único VCS que eu já tinha usando antes era o Subversion, onde fazer branches é essa coisa misteriosa que causa todo tipo de problema. Então eu não tinha muita prática com merges -- muito menos rebasing, algo que todo mundo dizia ser bem perigoso. (Lembra LSD and chainsaws?)

Então, antes de tentar alguma coisa sobre a qual eu não tinha muita certeza, eu fazia um backup do diretório inteiro.

$ cd ..
$ cp -r work backup_work
$ cd work

Daí eu faria o merge, ou rebase, ou qualquer outra coisa que eu achava que era complicada. Se parecesse que tinha funcionado, eu seguia em frente; se não, eu excluiria o diretório de trabalho, renomearia o antigo e tentaria alguma outra coisa.

Eu não tenho registros, mas eu tenho quase certeza que eu fiz assim pelo menos durante o primeiro ano de trabalho com o Git.

Quando eu finalmente percebi que references make commits reachable, eu (a) me senti muito estúpido por todas as vezes que eu fiz backup do repositório, e (b) desenvolvi uma estratégia muito mais rápida para restaurar o meu repositório de volta para um estado conhecido.