Como se preocupar com uma história limpa do Git

Aproveitando a dica profissional de Krzysztof Hasiński Por favor, oh, por favor, use git pull –rebase .

… Um colega compartilhou esse conhecimento adicional (?… Vejo que o rebase é um tanto quanto controverso). Ainda não tive que me preocupar muito em limpar meu histórico do Git, mas como estou usando mais e mais recentemente, isso pode ser útil em algum momento:

Via Jansen Price (também conhecido como sumpygump no Github e Twitter ):

Se você tentar puxar quando seu repo estiver sujo (você modificou arquivos rastreados), ele reclamará e não permitirá. Suas opções são confirmar o que você tem para que seu repo fique limpo novamente ou, às vezes, você deseja obter as alterações mais recentes do upstream antes de confirmar suas alterações, então, nesse caso, você pode fazer o seguinte:

git stash
git pull
--rebase
git stash pop

O que isso fará é armazenar suas alterações atuais em um local de retenção temporário (o stash) e, em seguida, puxar as alterações do remoto e, em seguida, colocá-las de volta em seu diretório de trabalho.

Você pode acabar tendo conflitos após o stash pop. Nesse caso, apenas corrija as linhas conflitantes e faça um git add, commit e push regulares (quando estiver pronto).

Você pode acabar tendo conflitos durante o comando git pull –rebase. Quando isso acontecer, você precisa consertar o arquivo (resolver o conflito) e, em seguida, emitir um git add <filename>para denotar que você terminou de consertar o arquivo e, em seguida, execute git rebase --continue(ele tem instruções sobre isso quando isso acontece) até terminar de refazer a base de todas as alterações.

Se você quiser fazer com que todos os seus branches de todos os seus repositórios sempre usem essa estratégia de rebase, você pode executar este comando:

git config --global branch.autosetuprebase always

Espero que seja útil (futuro eu)!

// Matt Hayes