git squash

曇り仕事に目処がついているので、朝はマクドナルドに行くことができた。 新型コロナウィルスの第三波とか言われていて、香川県での感染者も増えてきているけれど、マクドナルドに来ている常連たちはいつも通りだった。 自分は最近マクドナルドから離れ気味だが…… 久々に英文法の本を読んでいて、今日は「代名詞」の部分だった。 これは簡単だったが、読んでいるといろいろ勉強になる。

昨日懸念していたgitの細かい操作。 今やっているものはfeatureブランチ作ってやっている。 日々の仕事終了時にコミットしているが、PCが壊れたりして全て失ったら仕事が100%終わらなくなるので、そうならないようにリモートにPUSHもしている。 で、一通り組み終わったので、それをdevelopにマージしたいのだけど、その部分をどうしようか考えていた。
王道なやり方だと、featureブランチをsquashして一つのコミットにまとめて、それをdevelopにmergeではなくrebaseするのが良さそうだったのだけど、featureブランチをリモートにpushしてない前提の操作だった。
自分はPUSHしているので、squashしたあと、force pushするらしいのだけど、そうすると、もし他にfeatureブランチをpullしている人がいたら、コミット履歴が改変されるため、その人はpullできなくなるらしい。
ただ、自分専用のfeatureブランチなので、他の人がpullしているのは知ったこっちゃない感じなのだが……
とりあえず、このリポジトリでやるのは怖いので、一旦自分のgithubアカウントでリポジトリ作って、いろいろテストしてみた。
で、最終的にやった手順、Gitkrakenつかっているので、それでの手順だけど、
squashで1つのコミットにまとめる、PUSHもPULLもせずfeatureブランチも完了させず、squashでまとめたコミットをdevelopにrebase。 手元のfeatureブランチはdelete、リモートのfeatureブランチもdelete。
これで見た目上は上手く行った。 featureブランチ消しちゃってるので、これが正しい手順・運用なのかが全くわからないが……

今夜はジョギングトレーニングは無し。