nRF51822にTOPPERS/SSPを載せて遊ぼうとしているので、せっかくなのでこれにGit Flowを使ってみることにしている。
githubを使ってるので、私の混乱ぶりがわかるかもしれない。
https://github.com/hirokuma/nrf51822_uitron_ssp
あんまりまじめにやるつもりはなかったので、Git Flowのことはさらっとしか読んでない。
私の中では、こんな感じだと思っていた。
- とりあえず、masterとdevelopのブランチができ、基本はdevelopで作業
- 新しいことをするときは、developからブランチを切る(feature)
- featureのブランチが終わったら、developにマージなりリベースなりをする
- developでほどよくなったら、masterにマージする
SourceTreeにはGit Flowのアイコンがあって、それをクリックするとある程度は上記をやってくれる。
そう、私もfeatureのブランチを切って、作業をやっている間は混乱しなかったのだよ。
Advertisingができて満足したので、developにリベースしようとした。
と偉そうに書いてみたが、リベースってのはやったことがない。
Git Flowアイコンを押すとダイアログが出てきて、リベースするかどうかのチェックボックスがあったので、今までやったことがないのでチェックしてみた。
もう、このfeatureブランチはいらないので削除もチェックした。
そして実行してからの記憶が曖昧なのだが、pushしようとしてエラーが出たり、なんだかわけがわからなくなった。。。
これが、ようやくさっきエラーとかがなくなったので、スクリーンショットを撮ったところである。
左から2番目のが、featureブランチだろう。
私の思っていた完了形は、
- featureブランチがdevelopブランチにマージされるのだが、featureブランチでやっていた履歴は残らない
- featureブランチは消える
だったのだ。
が、スクリーンショットを見るとわかるように、featureの内容がそのままdevelopに入ってしまった。
featureブランチの削除はやらなくてよいとしても、developへマージするときにはその1点だけの情報で済ませたいのだ。
リベースの説明を読んでもそんな印象を受けていたのだが・・・。
non-fast-forwardのチェックをつけたりはずしたりしたような気がするので、それがよくなかったのか?
あと、SourceTreeの樹形図の見方を私は勘違いしていたようだ。
一番左の直線に並ぶのが現在checkoutしているものになると思っていたのだが、そうはなっていない。
いろいろうまくいかないと、細かいところから自信が崩れてきますな。
軽いので試してみよう。
sample/Makefileの削除、というだけのfeatureを切ってやってみる。
削除して、コミットして、今回はpushせずにGit Flowアイコンをクリック。
完了をクリック。
デフォルトではリベースしないようになっているので、チェックしてOK。
そうすると、けっこうな長い時間プログレスが流れる。
あら、今回はうまくいった?
Summary of actions:
- The feature branch 'feature/delete_sample' was merged into 'develop'
- Feature branch 'feature/delete_sample' has been removed
- You are now on branch 'develop'
現在のブランチがdevelopになって、未pushとなっている。
pushすると、pushされる。
githubを見ると、「Compare & pull request」、というのが出てきた。
いかん・・・名前はよく見るのだが、なんだかわからない・・・。
それに、1回コミットしたものでしか試していないので、期待する「1回だけコミットしたように見える」が実現できたかどうか判断できない。
もうちょっと試してみます。
内容にとても興味があるのですが、画像が表示されていないためよくわかりません。
返信削除ぜひ画像が表示されるようにしてください。
コメントありがとうございます。
削除画像ですが・・・残念ながら元データごと削除してしまい、数年分の画像が消えてしまいました。。。
このブログはGoogleのBloggerを使っているのですが、画像がGoogleフォトにアップロードされるのを知らず、「もうブログをアップしているから削除していいのだろう」と思い、消してしまって数年後に気付いたという状況です。
申し訳ないです。