ziguzagu.org

dotfiles

しばらく前に自分の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したようなので参考になってると幸い。