現在のワークフローには、主な git ブランチが 2 つあります。
master- 安定版リリース ブランチ
testing- 全員が自分のコードをテストしましたか
現在、すべての開発者は、開発する機能ごとに新しいブランチを作成しています。完了したら、それを にマージしtesting、QA で問題がないと判断されたら、ブランチを にマージし、master本番環境にデプロイします。
時間が経つにつれて、私たちのtestingブランチは本番環境に到達しないコミットで汚染されます。放棄された機能、修正された代わりに書き直されたものなど。
ある程度一貫した状態を保つためmasterに、時々testing「リセット」したいと思います。testing現時点では、 から完全に削除testingして再分岐することでそうしていmasterます。
ここでの大きな問題は、すべての開発者が自分のローカルtestingブランチを削除し、その新しいコピーをチェックアウトする必要があることです。1 人の開発者がそれをするのを忘れて、再びテストにプッシュした場合、取り除こうとしているすべてのダーティ コミットが戻ってきます。
サーバー上のブランチをリセットして、すべてのユーザーに配布する方法はありますか?
許容できる解決策はtesting、ローカルでリセットを行わないと、ブランチをプッシュできない状態にすることです。しかし、私はそれを行う方法を考えることはできません。
masterコミット間の差分を作成し、testingコミットを元に戻すことはオプションではありません。これにより、これらの各コミットが再びテストに入るのを防ぐことができます。
git pull理想的には、このリセットを定期的に実行するスクリプトがあり、各ユーザーのローカル環境で対話 (を除く) は必要ありません。