既に修正を加えてしまった状態でブランチを作る

いま製作中のライブラリ構築練習台であるナンプレ解決器は、
もともと「人間の解き方」を実装すべくクラスを構築していたので
確定探索と背理法のみを使うとなると、却って邪魔になるクラスがあるんですね。
それを思い切って削除してしまおうと。使わないだろうし、何よりも気持ち悪い。

ただそれで動かなくなって頓挫したら笑い話にもならないので、
こういうときの定石としてブランチを作成してみました。
「git ブランチ」みたいなワードでGoogle検索すると
もちろんたくさんヒットするんですが、
僕の見つけた範囲では、いずれも「編集する前にブランチを作る」が前提でした。

そして僕はやらかしたんですね。
不必要なライブラリファイルとspecファイルを削除してしまい、
しかもある程度他のライブラリを修正を加えてしまい、
その時点で初めて「あれ、ブランチ作ったほうがよくね……?」と思いました。

今更masterのheadをcheckoutして修正し直すのもしんどいし、
かといって、既に修正を加えた状態でブランチを作成したらどうなるのか
バージョン管理システムを使っている割には理解度も高くないし。
考えていても仕方が無いので特攻しました。

$ cd my_app
$ rm somefile
$ git branch something-deletion
$ git checkout something-deletion
$ ls

あれ……なんか良きにはからってくれました。
削除したファイルは削除されているし、
修正を加えたファイルにも変更はなく、
もちろんmasterブランチにも影響無し。

gitは初心者にもやさしい!

あとはある程度の段階まで修正、コミットを繰り返し、githubにpushしてみます。

$ git push origin something-deletion

ここでブランチの名前を省略したらどうなるのか、ガクブルが止まりません。
もしかしたら先ほどのように「良きにはからってくれる」のかも知れないけど、
初心者の僕には確証が持てないので昼も眠れない毎日です。

ともあれ、githubにブランチをpushできました。
あとはこの要領で好き勝手に変更していくだけですね。