今週はGitHubのイベントに二回ほど行った。
Gitの内部構造の話
http://atnd.org/events/45117
なんとなくGitは内部的にblobとtreeとcommitというobjectで管理されてて、ブランチはポインタで...のような漠然とした知識は持っていたのですが、それをもっとクリアに出来たのが良かった。
面白かった話としては
- git gcしたとき、参照がないobjectでもデフォルトで90日は消えない
- 一度commitさえしておけばresetとかしても90日は戻せるとか
- git gcしたときに、いらないオブジェクトを消すだけでなくて、objectファイルをさらに圧縮にかけてpackファイルを作ったりもしている
- 前回packした分からの差分をpackする
- packされた後objectsディレクトリの中身を見ると、空になっている
- 昔のcommitにチェックアウトしてもpackが解凍されることは無く、透過的に扱える
- git pushやgit pullするときには、localとremoteの差分を見て、一時的なpackファイルを作り送っているらしい
- pushとかするときにCompressing objectsとかでるのはこれかなーって思った
とにかく内部構造がわかったのが良かった。資料がすごい参考になりそうなので公開されたい。
Gitの基礎やGitHubの話
http://www.zusaar.com/event/1547007
GitやGithubの簡単な使い方や、GitHub内の開発についていろいろ聞けた。BoxenとかHubotの話とかも聞いた。Hubotに/ANIMATE MEというコマンドを食わせるとアニメーションgifが出るんだよって話してて、文化一緒だなって思った。
このイベントの発表はまあ大体知っていることが多かったんだけど、懇親会が本当に良かった。
同僚がひたすらGitHub最高なんだけど、issueに優先度付けれないの困ってるとか聞いてて、GitHubはマネージャーがいなくて一人ひとりでやってるからそういう感じなんだよねーとか、マイルストーンは知ってる?とか話し合ってたり、マイルストーンは知ってるんだけど使いづらいとか話してたのを聞いてたのが非常に面白かった。英語でもなんか気合で自分の意見を伝えてて、すごいなと思った。
僕もレビューする時に、再レビューがすごいしづらくて、compare viewとかでレビューもしたいんだよねって質問した。そうしたら、僕達も同じ問題があって本当にしたいよねって言ってて面白かった。
いろいろおもしろかったし参考になった。なんか日本好きそうな感じだったしまた遊びに来てくれると良いなと思う。