2015/06/28

[git]一人でやってるのに混乱する

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しようとしてエラーが出たり、なんだかわけがわからなくなった。。。

image

これが、ようやくさっきエラーとかがなくなったので、スクリーンショットを撮ったところである。

左から2番目のが、featureブランチだろう。
私の思っていた完了形は、

  • featureブランチがdevelopブランチにマージされるのだが、featureブランチでやっていた履歴は残らない
  • featureブランチは消える

だったのだ。
が、スクリーンショットを見るとわかるように、featureの内容がそのままdevelopに入ってしまった。
featureブランチの削除はやらなくてよいとしても、developへマージするときにはその1点だけの情報で済ませたいのだ。
リベースの説明を読んでもそんな印象を受けていたのだが・・・。
non-fast-forwardのチェックをつけたりはずしたりしたような気がするので、それがよくなかったのか?

 

あと、SourceTreeの樹形図の見方を私は勘違いしていたようだ。
一番左の直線に並ぶのが現在checkoutしているものになると思っていたのだが、そうはなっていない。
いろいろうまくいかないと、細かいところから自信が崩れてきますな。


軽いので試してみよう。
sample/Makefileの削除、というだけのfeatureを切ってやってみる。

削除して、コミットして、今回はpushせずにGit Flowアイコンをクリック。

image

完了をクリック。

image

デフォルトではリベースしないようになっているので、チェックして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回だけコミットしたように見える」が実現できたかどうか判断できない。
もうちょっと試してみます。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。