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