質問: 作業開始前に全てのリモートブランチやタグを完全に同期し、トラッキングしているローカルブランチも`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 [] [ [...]] or: git fetch [] or: git fetch --multiple [] [( | )...] or: git fetch --all [] -v, --verbose be more verbose ... ``` やりたいことは、 * 全てのリモートリポジトリについて、リモートブランチとタグを、削除も含めて完全に同期する * 全てのローカルブランチについて、追跡しているブランチが`fast-forward`でマージ可能ならマージして同期する * リモートブランチの移動・削除以外について安全(ローカルブランチの削除や破壊的移動が起きない) です。これを正しく行うにはどうしたら良いでしょうか? できるだけ簡潔に実行したいです。
回答: やりたいことを実現するための回答ではありませんが、pull は fetch のオプションより merge のオプションを先に指定する必要があります。なので、次のようにするととりあえずコマンドは通るようになります。 ``` git pull --ff-only --all --prune ``` ただ、これでも > > 全てのローカルブランチについて、追跡しているブランチがfast-forwardでマージ可能ならマージして同期する > > > を実現することはできないと思います。チェックアウトせずにローカルブランチへマージすることはできなかったように思うので。