在 Git 1.6.0.2 上模拟 ff-only 行为

在 Git 1.6.0.2 上模拟 ff-only 行为

我在我们的一台服务器上遇到了以下问题:我希望用户定期从 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

相关内容