読者です 読者をやめる 読者になる 読者になる

ブログっ...!

自分についてのメモしかないので、見る価値がないよ。(人に説明する思いやりが皆無に近いよ。)

もごもご

make について。

makeよくわからないまま使い続けていたら、ハマった。 (.cmaファイルが not found と言われる。) (もちろん本当にそのファイルが存在しないだけなんだけど、.cmo等との違いがわかっていない) そろそろその仕組み知るべき時期かもしれないな。。 まあほどほどに。。

OCamlMakefileしか使ったことないけど。

あと部分文字列の話も。。。


めもとしてgitの話。

今日gitをおさわりしていたのだけど、困ったことがあった。 ひとつの大きなコミットが完成した。 実際は5つだったのだけど、リモートにpushするためにrebase -iした。

git rebaseでsquashした場合とfixupした場合の違い - Qiita squash と fixup

(git rebase -i hoge はグラフで書くとどんな感じなんだろうと一瞬思ったけど、まあ普通にhoge以後の変更をまとめた、hogeを親とする新しいコミットを作成して、そこをheadとするだけかな。)

しかし、このコミットの中には、pushしてはいけない内容が入っている。

Unityってオブジェクトの参照関係等を.metaファイルで記述しているらしく、 ちょっと他のSceneとかをいじるだけで、そのSceneの.metaファイルが更新/作成されてしまう。 その失意に更新された.metaファイルの変更を気づかないうちにまとめてコミットしてしまっていた。 あとは間違えてしてしまった関係ないファイルの変更とかも入っていた。

$ git commit --amend
new file: edit.java
new file: hoge.meta
modified: hoge2.meta
modified: edit.class

このhoge.meta, hoge2.metaが要らない。

上の2, 3行目を削除しただけでその変更を引いたコミットができあがるといいんだけど。。... (A)

まあ、結局
$ git checkout HEAD^ hoge.meta hoge2.meta
$ git add -A
$ git commit -m "deleted irane- files."
$ git rebase -i HEAD~2
squash ... "deleted irane- files."

でやったけど、普通にもっといい方法ありそうだし、(A)の方法で変更できる実装するのもいいし。

まあ、痺れを切らしたときに。

じゃあ。。