Git 1.6.0.2 で ff のみの動作をエミュレートする

Git 1.6.0.2 で ff のみの動作をエミュレートする

弊社のサーバーの1つで、次のような問題があります。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

関連情報