Mostra os logs do git desde a última mudança de versão.

Vamos supor que você tenha um arquivo de versão. Como tal, pode ser qualquer arquivo em seu repositório git. Você só precisa chamar esta função abaixo com o nome da pasta e o arquivo. Ao fornecer um nome de pasta, ele mostrará os logs apenas relacionados a essa pasta. O arquivo é usado como referência. Basicamente, verifica quando o arquivo foi alterado pela última vez e obtém seu ID de revisão para obter os logs desde aquele ID de revisão.

function whatchanged() {        #what chnaged will give us the log of the     specified folder since the given file was last changed.$1=folder $2=file
for i in `git rev-list --all $2`
do
git log $1
"$i.." 2>/dev/null
# For one line messages.
# git log "$i.." --format="%ad %an %s" 2>/dev/null
RET
=$?
if [ $RET -ne 0 ]
then
echo
"Nothing"
fi
break;
done

}

Desta forma, toda vez que você mudar de versão o arquivo mudará e assim utilizando a função abaixo você poderá obter os logs desde a última mudança de versão.

Alguns exemplos:

whatchanged "" version.txt

A chamada acima me dará o log do git em todo o repo desde a última vez que o arquivo version.txt foi alterado.

whatchanged "client/" version.txt

A chamada acima me dará o log do git apenas o cliente / pasta desde a última vez que o arquivo version.txt foi alterado.

Por favor, comente se você quiser que eu explique algumas partes com mais detalhes. Também me diga se você tiver quaisquer outros problemas ou idéias com o git.