Eu sou relativamente novo no git, usei o Subversion antes.
Notei que a maioria dos front-ends gráficos do git e dos plugins IDE não parecem capazes de exibir o histórico de um arquivo se o arquivo tiver sido renomeado. Quando eu uso
git log --follow
na linha de comando, posso ver o log inteiro entre os renomeados.
De acordo com Linus Torvalds, o switch --follow é um prazer "SVN noob", usuários sérios do git não o usam:
--follow é um hack total, destinado apenas a satisfazer ex-usuários do SVN que nunca souberam nada sobre coisas como paternidade ou bons gráficos de revisão.
Não é totalmente fundamental, mas a implementação atual do "--follow" é realmente um processo rápido de pré-processamento, aparafusado na lógica de revisão, em vez de ser algo realmente integral.
Ele foi literalmente projetado como um agradador de "SVN noob", não como uma coisa de "funcionalidade real do git". A idéia era que você se afastaria da mentalidade (quebrada) de pensar que renomeia a matéria no quadro geral.
Minha pergunta : Como os usuários hardcore de git entre vocês obtêm o histórico de um arquivo quando ele foi renomeado? Qual é a maneira 'real' de fazer isso?
/bin/mv oldfile newfile), mas o fizer git add newfile; git rm oldfile, o resultado será indistinguível do de git mv oldfile newfile.
git log --followmelhora um pouco com o git 2.9 (junho de 2016): veja minha resposta abaixo
--color-movedquando você diff.
git mv oldfile newfilenão provoca a mudança de nome a ser gravado em tudo - é apenas o mesmo que excluir um arquivo e adicionar outro. O git apenas renomeia e copia o estado da árvore em cada commit após o fato.