弊社のサーバーの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