テクノロジー · 実用ガイド

Git LFS の clone 後に pointer text だけ?履歴を書き換える前に object delivery を証明

pointer を保存し、attributes、endpoint、fetch、checkout を分離して SHA-256 と size を検証します。

ja Original Git LFS object delivery chain
オリジナル編集イラスト: prove every Git LFS delivery boundary. Watch at Ease

working tree の Git LFS pointer は破損の証明ではありません。version、SHA-256 OID、size を持ち、failure は attributes、smudge policy、endpoint、authentication、remote object、checkout のどこにもあり得ます。

clone と pointer を保存し、commit の pointer から正確な object bytes までを証明します。missing object を不用意な history rewrite に変えません。

pointer を保存して分類

対象 file、path、commit を保存し、version、oid sha256、size を編集せず記録します。

有効でなければ停止し、有効なら manual replacement、広い reset、migrate をしません。

ref の tracking scope を証明

git check-attr と git lfs ls-files で path、OID、.gitattributes を照合します。

git lfs env、version、ref、filter を記録し、skip や scope gap を分離します。

smudge、fetch、checkout を分離

GIT_LFS_SKIP_SMUDGE、fetchexclude、CI setting を確認します。skip は object loss ではありません。

正確な remote/ref を fetch し status を保存してから対象 path を checkout します。

endpoint と availability を証明

endpoint と auth mode を記録します。Git が SSH でも LFS は HTTPS の場合があります。

401、403、404、timeout、exclude を分けます。remote にない OID は reinstall では作れません。

狭く materialize して検証

local object store の OID を確認し、対象 path だけ checkout します。最初から fetch --all を使いません。

file の SHA-256、size、git status を照合し、全 boundary を説明して終了します。

ja Original Git LFS pointer-to-bytes evidence tree
オリジナル編集イラスト: preserve evidence and verify exact object bytes. Watch at Ease