git-rebase-hack
前回の記事の補足として一つのGitハックを紹介します。
(というか前回の記事に含めて書いてたつもりだったけど確認してみたところなぜか書かれてなかったという…。
# mac
$ GIT_SEQUENCE_EDITOR="sed -i '' -e '2,\$d'" git rebase -i --root
# linux
$ GIT_SEQUENCE_EDITOR="sed -i -e '2,\$d'" git rebase -i --root
これは最初のコミットへ強制的に戻すコマンドでGIT_EDITOR
あたりの変数がポイントになりそう。rebaseの一つの使い方として、このようにcommitを戻して、最新のrepositoryをそこ(./.gitがあるところ)へコピーしcommit, pushすれば、履歴の上書きが可能。
基本的にはcat /usr/local/Cellar/git/$(git --version|cut -d ' ' -f 3)/libexec/git-core/git-rebase*
あたり見て色々確認したりするのが面白いかもしれません(実際、やらないけど)。
あと、上記は/Cellar
からもわかるようにmac(brew)。一般的なlinuxの場合は/share
とかになりそう(これはpackage managerによる)。
各種のGit Commandというのはあまり知られてなさそうなことですが、かなりの割合でShell Scriptだという気がしなくもないですね(適当)。
今回はちょっとまともに書いた気がしなくもない(補足含めて)。おわり。