tl;dr
書き換えないと死ぬという状況でなければ git mv
で済ませましょう (追記)
$ git filter-branch --tree-filter \ 'mkdir hoge; for file in `ls | grep -v hoge`; do mv -t hoge $file;
やりたいこと
Git リポジトリのルートディレクトリ以下のファイル/ディレクトリを全て hoge/
以下に移動させたい
main.py requirements.txt module/ __init__.py
を
hoge/ main.py requirements.txt module/ __init__.py
といった感じに移動したかった
最終的にやったこと
$ git filter-branch --tree-filter \ 'mkdir hoge; for file in `ls | grep -v hoge`; do mv -t hoge $file;
雑に mv * hoge/
とかだとできなかった
お気持ち
hoge/ に移動させたいとして
— うたがわきき🔰💊 (@utgwkk) 2016年11月11日
git filter-branch --tree-filter 'mkdir hoge; for file in `ls | grep -v hoge`; do mv -t hoge $file; done' HEAD したけどいい方法ありそう
git mv でいいじゃん、確かにそうだ……
— うたがわきき🔰💊 (@utgwkk) 2016年11月20日
意味もなく履歴を書き換えまくろうとしない方が命のためです(追記)