しばらく前に自分のdotfilesのリポジトリをPublicにした。
https://github.com/ziguzagu/dotfiles
きっかけは同僚の、
dotfile のようなものは社内で共有するだけでチーム全員の生産性を一度にひきあげれる
という言葉(あるいは「お前のシェル芸を盗ませろ」的圧力)から。
たしかに知ってるだけで、またはコピペするだけで簡単に真似できるたぐいのものなのでそういう効果はあるかもしれない。
とはいえ2006年から13年間1900コミット重ねた上に、ずっと自宅サーバーその後 GitHub の Private Repository で管理していたものなので正直あんまりセキュアじゃないものも入れてるかもということで躊躇していた。が、ざっくり調べてみたところ .ssh/config
ファイルの過去歴史さえ抹消できれば大丈夫そうだったので、初めて git filter-branch
をつかって歴史を書き換えた。
~/src/dotfiles (git:master)
➜ git filter-branch -f --tree-filter 'rm -f .ssh/config' HEAD
WARNING: git-filter-branch has a glut of gotchas generating mangled history
rewrites. Hit Ctrl-C before proceeding to abort, then use an
alternative filtering tool such as 'git filter-repo'
(https://github.com/newren/git-filter-repo/) instead. See the
filter-branch manual page for more details; to squelch this warning,
set FILTER_BRANCH_SQUELCH_WARNING=1.
Proceeding with filter-branch...
Rewrite 1a37ddf (1884/1898) (123 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was rewritten
~/src/dotfiles (git:master +860/-860)
➜
ごりっとやったら5分ほどで書き換えが終わったので、秘密の情報を取り除いた .ssh/config
を追加して完了。Gitのパワーをあらためて身にしみて感じた。
社内Slackで「公開してみた」といってURLさらしたところ何人かがcloneしたようなので参考になってると幸い。