RSS ジュリア・エヴァンス

git コミットを差分、スナップショット、歴史のいずれかとして捉えるのか?

Follow
Git のコミットの理解は複雑で、人々は異なる精神モデルを持っています。調査によると、51%がコミットを差分(バージョン間の変更)として捉え、42%がスナップショット(ファイルの現在の状態)として捉え、わずか4%が過去のコミットの歴史として捉えています。 内部的に、Git はコミットをスナップショットとして保存し、チェックアウト時間を高速化します。ただし、スペースを節約するためにパックファイルも使用し、ファイルをデルタ(差分)として保存します。 このスナップショットベースの実装にもかかわらず、Git はデルタからスナップショットを再構築し、比較することで差分を計算します。 一般的に誤ったとされる精神モデルは、前のコミットからの差分としてコミットを捉えるものです。このモデルは、日常的な使用においては不正確ですが、依然として有用です。 最も一般的な精神モデルは、コミットを差分として捉えるもので、典型的なコードの変更に焦点を当てることに合致します。他のモデル、例えばスナップショットモデルは、ファイルの移動やマージコミットの理解に有用です。 さらに、人々はコミットと一緒に余分な情報(例えば、メール、会話)を関連付けるか、コミットを「前」状態と「後」状態として捉えることがあります。
favicon
jvns.ca
Do we think of git commits as diffs, snapshots, and/or histories?
Create attached notes ...