2017-09-07 3 views
0

たとえば、cleandebugという2つのブランチを持っていますが、その違いはブランチにあります。ブランチにそのようなことはありませんが、すべての機能にprint $global.watchがあります。git:2つのブランチを維持し、別のものに従って更新する方法は?

基本的に私はdebugブランチで開発し、時間から時間に、私はこれを行うことができますどのように、debugからcleanへの変更を更新したいと思いますか?明らかに私は行うことができませんmerge

+2

をコピーし、それはgitの(または任意のバージョン管理システム)についての質問ではなく、アプローチについて。コードベースには、必要に応じてデバッグモードを有効/無効にするメカニズムが含まれている必要があります。今のところ、2つの異なるコードに取り組んでいます。もしそれらのプリントがデバッグシステムに若干の遅延をもたらし、それが原因で動作したらどうでしょうか?これらのログでは、構成可能なログレベルで作業する必要があります。長い間、どうにかしてコードの読みやすさを損なうことがあるので、不必要な行を取り除くために、ある種の注釈を使用することもできます。 –

+1

あなたのアプローチは間違っています。デバッグは何らかのスイッチを使って管理する必要があります。コードの行を手動でコメントアウトすることではありません。 –

答えて

0

ダミーデータを使用する必要があるのと同じ問題があります。 私は基本的に変更をローカルに保存して、後でどのブランチにも適用するstashを使用しています。何をする必要がある:

  1. それらを隠し、代わりに変更をコミットするコード
  2. 内のすべてのプリントを削除し、あなたのデバッグブランチへ
  3. を行きます。これにより、print(less)コードがstashにローカルに保存され、デバッグコードが初期状態に戻ります。
  4. スタッシュは名前を持つことができ、ローカルに保存されるため、デバッグブランチをクリーンブランチにマージする必要があるたびに、スタッシュを適用してプリントを削除します。

あなたがそれを必要とするとき、このlink

+1

これは面倒で実際問題を解決するものではありません。ステップ2は時間がかかるでしょう。 –

+0

現在、デバッグブランチをクリーンなものにマージしたい場合、OPはステップ2を実行する必要があります。私の提案した方法で彼は一度それを行う必要があります。 –

+0

stash後にOPがデバッグする変更はどうですか?変更後に元に戻すことはできません。毎回マージ競合が発生する可能性があります。 –

0

も、あなたのコードベースをチェックして、変更内容を隠しておく方法の詳細は、デバッグするためのメカニズムが含まれていなければなりません。私はgit cherry-pickを使うことができると思います。

手順:

  1. あなたのブランチの一つにコミットしてください。私の意見では、コミットハッシュ
  2. を他のブランチに移動し、git cherry-pick <commit-hash>
関連する問題