ソースを修正する時、必ずしも1トピックに絞れないと思います。
現トピック対応中に、コーディング規約から外れた記述を見つけて修正した、他のバグを修正した等により、複数のトピックの修正が入り混じってしまいます。
しかし、できるだけ1つのコミットは1つのトピックに限定した方が良いと聞きます。1コミットを1トピックに絞れれば、修正箇所の確認が容易になるので、あまり手間の掛からない場合は対応しておくと好ましいと理解しています。
さて、私の知識の範囲では、冒頭の状態に遭遇した時、トピック毎にコミットを分けるには下記手順しか思いつきません。(トピック毎にブランチを作りmasterへ反映したらブランチを削除することを想定してます。)
- 気がついた別トピックの修正を行う前に、現在の修正をスタッシュし、masterへ切り替える
- 別トピックの修正をmasterに反映し、コミットする。
- masterに現トピックのブランチをリベースする
- スタッシュを戻して、作業再開
正直、手間がかかりすぎると感じて、ここまではやっていません。
皆さんは1コミット1トピックを保つための努力をどの程度払ってますか?
また、上記のような面倒な手順を踏まずに1コミット1トピックに整理する良い方法はないでしょうか?
C++プロジェクトをGitHubで公開してます。ある程度1コミットのトピックを絞るよう努力してますが、更に努力するべきか、もう少し手を抜いても良いものか、めどを付けたいです。
バージョン管理ツールを深く使った経験がないため、加減に悩んでいます。
【追記】
どうも整理不足だったようです。すいません。
トピック = ブランチ ∋ コミット というGitHub Flow的な運用を想定しています。
1つのブランチに複数のコミットを含みます。そして、GitHub Flowの解説を見る限り、1つのブランチには1つのトピックしか含まないようです。(1連の修正に複数の異なるトピックを含まない方が好ましいことは理解しています。)
そのための、可能な運用は下記と思います。
- 手間が掛かってでも1ブランチ=1トピックへ整理する
- 1つのブランチに多少の異なるトピックが入り混じることを妥協する
- 手前をかけずに1.をやる方法がある
もし、3.の「手間をかけずにコミットを整理する方法」があれば是非教えてください。
もし、1.の場合、コンフリクトが比較的発生しやすいと思います。新たな別トピックの変更が現在のブランチで既に修正したのと同じ行を修正していたら、ブランチを分ける時にコンフリクトし、ブランチをマージする時に再度コンフリクトする筈です。すごく無駄な作業のように感じます。
2.が現実的な妥協と感じているのですが、3.のテクニックが存在するかもしれないですし、他によい運用があるかもしれません。
実際にGitHub Flowベースで運用されている方がどのようにされているのか、アドバイス頂ければ幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/07 14:11