Tenho o seguinte problema em um de nossos servidores: quero um usuário que extraia regularmente de um repositório Git (usando um cronjob), mas apenas faça pulls de avanço rápido (o conteúdo do servidor também muda às vezes). Com o Git moderno (1.6.6 e mais recente), posso simplesmente fazer
git pull --ff-only origin master
mas como só tenho o 1.6.0.2 instalado, não posso fazer isso. Eu pensei que poderia contornar isso fazendo
git config merge.ff only
git pull origin master
mas, como se viu, isso não funcionou (sem erro, mas ainda faz mesclagens). Alguma idéia de como posso resolver isso?
Responder1
Encontrei uma solução para isso verificando manualmente se o branch atual ( master
) é realmente descendente do branch a ser mesclado ( origin/master
):
git fetch origin
if [ $(git branch --contains master -a | grep origin/master) ]
then
git merge origin/master
else
echo "No fast-forward, aborting merge"
fi