Gitで何かの仕方を検索していて、いまさらながら git-gsub を知りました。
gemとして公開されており、カジュアルにインストールできてめちゃくちゃ便利です。
となると気になるのが git-rename 。おそらく想像するにファイル名の便利置換コマンド。ファイル名の置換もよくあるので、こちらも是非使いたいなと思いました。
が、gemとして公開されていなかったので、git-gsub を参考に git-gsub-files を作ってみました。
簡単にいうと、Gitで管理されているファイルのリネーム( mv
)を gsub ライクにするためのGitサブコマンドです。
インストール
$ git install git-gsub-files
使い方
Gitの管理下のファイルに対して、ファイル名をgsubライクに置換して mv
します。
置換対象はファイル名だけでディレクトリ名には影響しません。
$ git gsub-files READ WRITE $ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: README.md Untracked files: (use "git add <file>..." to include in what will be committed) WRITEME.md no changes added to commit (use "git add" and/or "git commit -a")
せっかくGitなので、mv
ではなくて git mv
したいこともあります。そのときは --add
オプションを使います。
$ git gsub-files READ WRITE --add $ git status On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) renamed: README.md -> WRITEME.md no changes added to commit (use "git add" and/or "git commit -a")
と、ここまで作って本家が公開されていました。。。
git-rename 公開されていないのか...と思ってgit-gsub-filesをつくったら、あった... https://t.co/3tXphQ8FUg
— k1LoW (@k1LoW) December 18, 2015
想像していた動きとは少し違っていたので、まあgit-gsub-filesを作った意味はあったかもです。
Thor人間だったのに、Thor使わないでコマンド作ったり、Rspecの書き方を git-gsub のテストを見ながら学んだり、俺得でした。
最後に
git-gsubという便利コマンドを公開してくださった fujimura さんありがとうございます!