dotfilesというリポジトリを立てて各種設定ファイルを管理しているのだけど、その中にこまごまとしたスクリプトも入れている。けど、これは別にして管理したほうがいい気がしてきた。
そこで、 scripts というリポジトリを立てて、 dotfiles/bin の中身をそちらに移そうとおもった。いままでのコミットを持ったまま移動したかったので、 git filter-branch をつかうことにした。
dotfiles を clone してくる
% cd ~ % git clone git@github.com:aereal/dotfiles.git scripts
git-filter-branch であたらしくリポジトリのrootを決める
% cd ~/scripts % git filter-branch --subdirectory-filter bin/
remote.origin.url をあたらしい GitHub のリポジトリへ向ける
% git config remote.origin.url git@github.com:aereal/scripts.git
git push
% git push origin master
これで
~/dotfiles/bin の中身があたらしく独立したGitのリポジトリになった。
なぜか zsh の補完で filter-branch が出てこなかったので使えるかどうかわからなかったけど、問題なく使えた。