作業開始前に全てのリモートブランチやタグを完全に同期し、トラッキングしているローカルブランチもfast-forwardできる範囲で同期したいのですが、git pull --all --prune --ff-onlyを実行しようとすると以下のエラーが出てしまいます。

$ git --version
git version 2.2.1

$ git pull --all --prune --ff-only
error: unknown option `ff-only'
usage: git fetch [<options>] [<repository> [<refspec>...]]
   or: git fetch [<options>] <group>
   or: git fetch --multiple [<options>] [(<repository> | <group>)...]
   or: git fetch --all [<options>]

    -v, --verbose         be more verbose
    ...

やりたいことは、

  • 全てのリモートリポジトリについて、リモートブランチとタグを、削除も含めて完全に同期する
  • 全てのローカルブランチについて、追跡しているブランチがfast-forwardでマージ可能ならマージして同期する
  • リモートブランチの移動・削除以外について安全(ローカルブランチの削除や破壊的移動が起きない)

です。これを正しく行うにはどうしたら良いでしょうか? できるだけ簡潔に実行したいです。