gitのbranchで添付ファイルのようなことは可能なのでしょうか。

現在の運用パターンとしては1のような形で
pushするとそのまま公開サイトに反映するのですが
少し大きな変更をする際にバグがあればそのままに公開されてしまう状態です。

そこでブランチを公開用リポジトリに作りそちらを確認するようなことはできるのでしょうか。
(パターン2)

またブランチからマージして本来はマスターをpushするのが
一般的だと思いますが、pushしてバグが出てしまった場合
ローカルのマージ前のマスターから再度pushしてバグ発生前の状態にすることは可能でしょうか。
(パターン3)

今回大幅な変更がありローカルで作業をたくさんして
(途中でローカルでaddだけは何回かしてしまった)
一気にリモートへpushする必要がありこのようなことを考えてしまいました。
もっと効率の良いお勧めのやり方がありましたらそちらもぜひ伺いたいです。
よろしくお願いいたします。

画像の説明をここに入力