У меня следующая проблема на одном из наших серверов: мне нужен пользователь, который регулярно извлекает данные из репозитория Git (используя cronjob), но делает только быстрые извлечения (контент на сервере тоже иногда меняется). С современным Git (1.6.6 и новее) я могу просто сделать
git pull --ff-only origin master
но так как у меня установлена только 1.6.0.2, я не могу этого сделать. Я думал, что смогу обойти это, сделав
git config merge.ff only
git pull origin master
но как оказалось, это не сработало (никакой ошибки, хотя слияния все равно происходят). Есть идеи, как это решить?
решение1
Я нашел решение этой проблемы, вручную проверяя, master
является ли текущая ветка ( ) на самом деле потомком ветви, подлежащей слиянию ( 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