keisukeのブログ

***乱雑です!自分用のメモです!*** 統計や機械学習の勉強と、読み物を書く練習と、備忘録用のブログ

gitのprintfデバッグ用のブランチ

参考:“debug” branch, merge “fix” branch without “debug”


masterにバグがあったので、printfデバッグをおこなったブランチdebugと、バグを修正したブランチfixを作成したとします。 f:id:kaisk:20150221014805p:plain

すると、masterに取り込みたいのはfixだけであって、debugは取り込みたくありません。 そこで、fixだけをmasterに取り込みます:

git rebase --onto master debug fix  # rebaseする

ここで、debugfixの編集内容によっては競合が起きます。 f:id:kaisk:20150221015014p:plain

この競合が起きているファイルを修正したあと、

git add <confilictが起きていたファイル>  # 競合を修正したファイルをインデックスに登録

して、さらに

git rebase --continue  # rebaseの続き

するとrebaseが完了します。 f:id:kaisk:20150221015136p:plain

しかしこの時点ではまだmasterブランチが前に進んでいませんので、 前に進める必要があります:

git checkout master  # masterブランチにスイッチ
git merge fix  # fixブランチをマージ

f:id:kaisk:20150221015513p:plain

これでOKです。