タグ

2021年2月13日のブックマーク (1件)

  • コミットはスナップショットであり差分ではない

    Git は紛らわしいという評判です。用語や言い回しが意味するものと、そこから想像する挙動が違ってユーザーが混乱すると言われます。これは、git cherry-pick や git rebase のような「履歴を書き換える」コマンドに最も顕著です。私の経験では、この混乱の根的な原因は、コミットは 差分 であり順番を入れ替えることができるという解釈にあります。しかし、コミットはスナップショットであって、差分ではありません! Git がリポジトリデータをどのように保存しているかを見てみると、Git を理解しやすくなります。このモデルを調べた後に、この新しい視点が git cherry-pick や git rebase のようなコマンドを理解するのにどのように役立つのかを探っていきます。 当に深く 掘り下げたいのであれば、Pro Git という書籍の Git Internals の章を読むと

    コミットはスナップショットであり差分ではない
    naga_sawa
    naga_sawa 2021/02/13
    内側の実現方式がハッシュで繋いだスナップショットなんだけれどもユーザはdiffとか使っていくので差分累積に見えてしまうという/同じネタを昔やった記憶→ https://b.hatena.ne.jp/entry/s/qiita.com/kaityo256/items/81e7951a1ca2706955a4