- git lfs install run repo-wide; LFS objects push to Forgejo (git.rdx4.com) - .gitattributes routes images/audio/video/models/fonts/native-libs + binary .asset exceptions (LightingData, cubemap) through LFS filter - Unity YAML text assets (.unity/.prefab/.mat/.asset/.anim/.controller) stay normal mergeable text, NOT LFS - Verified: .png->lfs, .prefab->text, clean filter produces LFS pointer Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
108 lines
4.9 KiB
Text
108 lines
4.9 KiB
Text
# ============================================================================
|
|
# JANKENBOTS .gitattributes — Unity + Git LFS
|
|
# LFS objects are stored on the Forgejo remote (git.rdx4.com). git-lfs must be
|
|
# installed locally (`git lfs install`) — it is, repo-wide, as of 2026-07-12.
|
|
# ============================================================================
|
|
|
|
# Normalize line endings; Unity is happiest with LF for its YAML text assets.
|
|
* text=auto eol=lf
|
|
*.cs text diff=csharp eol=lf
|
|
|
|
# ---- Unity YAML *text* assets — mergeable with UnityYAMLMerge, NOT LFS -------
|
|
# These are human-readable YAML (Asset Serialization = Force Text). Keep them as
|
|
# normal git text so diffs/merges work. Do NOT add them to LFS.
|
|
*.unity merge=unityyamlmerge eol=lf
|
|
*.prefab merge=unityyamlmerge eol=lf
|
|
*.asset merge=unityyamlmerge eol=lf
|
|
*.meta merge=unityyamlmerge eol=lf
|
|
*.mat merge=unityyamlmerge eol=lf
|
|
*.anim merge=unityyamlmerge eol=lf
|
|
*.controller merge=unityyamlmerge eol=lf
|
|
*.physicMaterial merge=unityyamlmerge eol=lf
|
|
*.physicsMaterial merge=unityyamlmerge eol=lf
|
|
|
|
# ============================================================================
|
|
# Git LFS — large binaries (art / audio / video / models / fonts / native libs)
|
|
# filter=lfs diff=lfs merge=lfs -text
|
|
# ============================================================================
|
|
|
|
# ---- Images / textures ------------------------------------------------------
|
|
*.png filter=lfs diff=lfs merge=lfs -text
|
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
|
*.gif filter=lfs diff=lfs merge=lfs -text
|
|
*.bmp filter=lfs diff=lfs merge=lfs -text
|
|
*.tga filter=lfs diff=lfs merge=lfs -text
|
|
*.tif filter=lfs diff=lfs merge=lfs -text
|
|
*.tiff filter=lfs diff=lfs merge=lfs -text
|
|
*.psd filter=lfs diff=lfs merge=lfs -text
|
|
*.ai filter=lfs diff=lfs merge=lfs -text
|
|
*.dds filter=lfs diff=lfs merge=lfs -text
|
|
*.iff filter=lfs diff=lfs merge=lfs -text
|
|
*.pict filter=lfs diff=lfs merge=lfs -text
|
|
*.exr filter=lfs diff=lfs merge=lfs -text
|
|
*.hdr filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# ---- Audio ------------------------------------------------------------------
|
|
*.wav filter=lfs diff=lfs merge=lfs -text
|
|
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
|
*.ogg filter=lfs diff=lfs merge=lfs -text
|
|
*.aif filter=lfs diff=lfs merge=lfs -text
|
|
*.aiff filter=lfs diff=lfs merge=lfs -text
|
|
*.flac filter=lfs diff=lfs merge=lfs -text
|
|
*.mod filter=lfs diff=lfs merge=lfs -text
|
|
*.it filter=lfs diff=lfs merge=lfs -text
|
|
*.s3m filter=lfs diff=lfs merge=lfs -text
|
|
*.xm filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# ---- Video ------------------------------------------------------------------
|
|
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
*.mov filter=lfs diff=lfs merge=lfs -text
|
|
*.avi filter=lfs diff=lfs merge=lfs -text
|
|
*.webm filter=lfs diff=lfs merge=lfs -text
|
|
*.mpg filter=lfs diff=lfs merge=lfs -text
|
|
*.mpeg filter=lfs diff=lfs merge=lfs -text
|
|
*.flv filter=lfs diff=lfs merge=lfs -text
|
|
*.ogv filter=lfs diff=lfs merge=lfs -text
|
|
*.wmv filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# ---- 3D models --------------------------------------------------------------
|
|
*.fbx filter=lfs diff=lfs merge=lfs -text
|
|
*.obj filter=lfs diff=lfs merge=lfs -text
|
|
*.blend filter=lfs diff=lfs merge=lfs -text
|
|
*.dae filter=lfs diff=lfs merge=lfs -text
|
|
*.3ds filter=lfs diff=lfs merge=lfs -text
|
|
*.max filter=lfs diff=lfs merge=lfs -text
|
|
*.c4d filter=lfs diff=lfs merge=lfs -text
|
|
*.mb filter=lfs diff=lfs merge=lfs -text
|
|
*.ma filter=lfs diff=lfs merge=lfs -text
|
|
*.lwo filter=lfs diff=lfs merge=lfs -text
|
|
*.lws filter=lfs diff=lfs merge=lfs -text
|
|
*.abc filter=lfs diff=lfs merge=lfs -text
|
|
*.ply filter=lfs diff=lfs merge=lfs -text
|
|
*.stl filter=lfs diff=lfs merge=lfs -text
|
|
*.glb filter=lfs diff=lfs merge=lfs -text
|
|
*.gltf filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# ---- Fonts ------------------------------------------------------------------
|
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
|
*.otf filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# ---- Native libraries / archives / binary bundles ---------------------------
|
|
*.dll filter=lfs diff=lfs merge=lfs -text
|
|
*.so filter=lfs diff=lfs merge=lfs -text
|
|
*.dylib filter=lfs diff=lfs merge=lfs -text
|
|
*.a filter=lfs diff=lfs merge=lfs -text
|
|
*.bundle filter=lfs diff=lfs merge=lfs -text
|
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
|
*.rar filter=lfs diff=lfs merge=lfs -text
|
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
|
*.unitypackage filter=lfs diff=lfs merge=lfs -text
|
|
*.unity3d filter=lfs diff=lfs merge=lfs -text
|
|
*.assetbundle filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# ---- Binary .asset exceptions (override the text rule above) ----------------
|
|
# Baked lighting / cubemaps are binary despite the .asset extension.
|
|
*.cubemap filter=lfs diff=lfs merge=lfs -text
|
|
LightingData.asset filter=lfs diff=lfs merge=lfs -text
|