2017-02-24 16 views
3

私はGitブランチdevelopを持っていますが、そのブランチにはデバッグ用のステートメントだけであり、本番用ではないはずのコミットがたくさんあります。一方、developブランチから私たちのfeatureブランチにプルリクエストを作成したいのですが、私はデバッグコミットを含めたくありません。特定のコミットをプルリクエストから守る

これを行うための私の二つのオプションは、(1)、develop-copyブランチを作成し、適切なは、そのブランチからコミットし、develop-copyからPRをするか、または(2)developから適切なコミットをドロップドロップ、作るにしているように思えPR、その後チェリー - コミットをdevelopに戻します。どちらも痛みの種です。

コミットの特定のセットをプッシュするか、またはこれらのコミット以外の2つのブランチを互いにコピーする方法はありますか?ありがとう。

+0

あなたがコミットのみ特定をプッシュしたい場合は、この答えを見ることができますhttp://stackoverflow.com/questions/3230074/git-pushing-specific-commit – afonte

+0

私はそのすべてを潰し、オプションだと思いますデバッギングコミットを行い、その1つのコミットをプッシュします。 – jay

答えて

0

コミットの特定のセットをプッシュするか、これらのコミット以外の2つのブランチをコピーする方法はありますか?

いいえ。コミットの参照のみをプッシュでき、コミットはその内容とその親によって定義されます。

まあ、デバッグステートメントを別々のコミットでジャグリングするのではなく、それらを残す方法を理解していて、本番用にそれらを最適化するべきでしょう。

+0

合意しましたが、私のチームメイトはデバッグステートメントがコードレビューにノイズを発生させると不平を言っています。 (どちらが公正であるかはわかりません) – jay

+0

その場合、デバッグ文が自分のコミットになっているかどうかを確認し、レビューを求める前にそれらを 'rebase --interactive'でドロップします。 これは、コードレビューから気をそらすほど多くのデバッグ文が必要な理由を考えています。私は一般的に、YMMVでも、単体テストのカバレッジが良いとデバッグ文よりもコードをよく理解できることが分かっています。 – dahlbyk

0

また、そのブランチで作業している唯一の人は、rebase it interactivelyです。

git checkout develop 
git rebase -i 
# reorder commits 
git push --force 

あなたはその後、その後、あなたは最後の非デバッグ、コミットそれを押すと、その新しいブランチからあなたのPRを作るから始まる新しいブランチを作ることができ、最後の

でデバッグものを入れて、コミットを並べ替えることができます。

0

対話型のリベースを実行してください。git rebase master -iを削除して、プルリクエストからランダムなコミットを削除するかfixupしてください。

pick fdfb01e Real commit 
# pick a382ce3 Debugging some random issue 
# pick 02ff8dc Remove debugging code 
fixup ddf5e91 Add missing semicolon 
pick 73c7e11 Real commit 
関連する問題