2011-07-22 15 views
2

私はgitに2つのリモートブランチ、マスターテストを持っています。 マスターは、次にプロダクション環境に展開されるものを反映します。 テストは同じですが、私たちのテスト環境です。リモートのgitブランチをリセットする

ため失速や廃棄プロジェクトのテストは、時間をかけて、理論的にマスターに存在しないコミットの多くを蓄積することができます。これを避けるにはどうすればいいですか?

私のローカルとリモートのテストブランチを削除することをお勧めします。 マスターに基づいて新しいものを作成し、それをリモートにプッシュします。しかし、このアプローチは、私の同僚に強制し​​、システムを構築/展開して、ローカルブランチを削除してから新しいブランチを引き出すようにします。

答えて

2

別のアプローチは、testブランチを引っ張って許可することはないtestの歴史を書き換えるが、新しいがmasterと同じ状態を反映しているコミット追加、masterの一つにtestのインデックスをリセットすることです。
しかし、それはtestのすべての余分なコミットを残すでしょう。

git checkout master 
git merge -s ours test # make master believe that everything from test has been 
         merged to master up to this point. 
git checkout test 
git reset master -- . # reset the index content of test to the index of master 
git checkout # reset the working tree of test to its new index 
git commit -m "test reset to master" 
git merge master # should be trivial merge 
git push origin master 
git push origin test 
関連する問題