Git 天空闘技場に参加しました

Git天空闘技場 - connpass

普段は SVNMercurial を使っているのですが、Git 力を上げつつ、違いを知ることで Mercurial の理解も深まればいいと思って参加しました。

感想

オブジェクトの内容を直接確認したり、コマンドを使わずにブランチを作ったり、通常の使い方ではやらないようなことを体験できて、とても楽しかったです!

Git は難しいというイメージでしたが、内部構造はとてもシンプルで合理的な印象を受けました。
また、元々 Linux の開発のために作られただけあって、説明を聞きながら Linux っぽいなあとか思ってました。*1
内部構造や思想を知ることが理解を助けるというのは本当ですね。

ヒソカは言い過ぎですが、ズシくらいにはレベルアップしたのではないでしょうか。

主催の @skowata さん、講師の@sinsoku_listy さん、参加者の皆さん、ありがとうございました!

メモ

  • GIt のオブジェクト ※@sinsoku_listy さんの資料から抜粋
    • blob
      • ファイルの中身を表すオブジェクト
    • tree
      • ディレクトリの中身と各blobとの対応を表すオブジェクト
    • commit
  • 各オブジェクトはハッシュ値で識別
    • commit -> tree -> blob と参照している
    • 1 byte でも差があれば、blob オブジェクトが作られる
      • バイナリの管理にはやや不向き
    • 同一内容の場合は、同一ハッシュになるので blob オブジェクトは1つ

やったこと

*1:treeオブジェクトとかコマンドとかetc