My Unity repo's git config as of today.
For more complex and complete alternatives, look at:
My Unity repo's git config as of today.
For more complex and complete alternatives, look at:
## Unity ## | |
*.cs diff=csharp text | |
*.cginc text | |
*.shader text | |
## Special rule for binary files (and large static text file) | |
LightingData.asset filter=lfs diff=lfs merge=lfs -text | |
TerrainData.asset filter=lfs diff=lfs merge=lfs -text | |
NavMesh.asset filter=lfs diff=lfs merge=lfs -text | |
Rewired_Core.XML filter=lfs diff=lfs merge=lfs -text | |
## Unity YAML ## | |
*.mat merge=unityyamlmerge eol=lf | |
*.anim merge=unityyamlmerge eol=lf | |
*.unity merge=unityyamlmerge eol=lf | |
*.prefab merge=unityyamlmerge eol=lf | |
*.physicsMaterial2D merge=unityyamlmerge eol=lf | |
*.physicsMaterial merge=unityyamlmerge eol=lf | |
*.asset merge=unityyamlmerge eol=lf | |
*.meta merge=unityyamlmerge eol=lf | |
*.controller merge=unityyamlmerge eol=lf | |
## git-lfs ## | |
# Image | |
*.jpg filter=lfs diff=lfs merge=lfs -text | |
*.jpeg filter=lfs diff=lfs merge=lfs -text | |
*.png filter=lfs diff=lfs merge=lfs -text | |
*.gif filter=lfs diff=lfs merge=lfs -text | |
*.psd filter=lfs diff=lfs merge=lfs -text | |
*.ai filter=lfs diff=lfs merge=lfs -text | |
# Audio | |
*.mp3 filter=lfs diff=lfs merge=lfs -text | |
*.wav filter=lfs diff=lfs merge=lfs -text | |
*.ogg filter=lfs diff=lfs merge=lfs -text | |
# Video | |
*.mp4 filter=lfs diff=lfs merge=lfs -text | |
*.mov filter=lfs diff=lfs merge=lfs -text | |
# 3D Object | |
*.FBX filter=lfs diff=lfs merge=lfs -text | |
*.fbx filter=lfs diff=lfs merge=lfs -text | |
*.blend filter=lfs diff=lfs merge=lfs -text | |
*.obj filter=lfs diff=lfs merge=lfs -text | |
# Others | |
*.a filter=lfs diff=lfs merge=lfs -text | |
*.exr filter=lfs diff=lfs merge=lfs -text | |
*.tga filter=lfs diff=lfs merge=lfs -text | |
*.pdf filter=lfs diff=lfs merge=lfs -text | |
*.zip filter=lfs diff=lfs merge=lfs -text | |
*.dll filter=lfs diff=lfs merge=lfs -text | |
*.unitypackage filter=lfs diff=lfs merge=lfs -text | |
*.aif filter=lfs diff=lfs merge=lfs -text | |
*.ttf filter=lfs diff=lfs merge=lfs -text | |
*.otf filter=lfs diff=lfs merge=lfs -text | |
*.rns filter=lfs diff=lfs merge=lfs -text | |
*.reason filter=lfs diff=lfs merge=lfs -text | |
*.lxo filter=lfs diff=lfs merge=lfs -text | |
# Source | |
*.spp filter=lfs diff=lfs merge=lfs -text | |
*.sbsar filter=lfs diff=lfs merge=lfs -text | |
*.sbs filter=lfs diff=lfs merge=lfs -text | |
*.tbscene filter=lfs diff=lfs merge=lfs -text | |
*.mlt filter=lfs diff=lfs merge=lfs -text | |
*.sib filter=lfs diff=lfs merge=lfs -text | |
*.ZPR filter=lfs diff=lfs merge=lfs -text | |
*.painter_lock filter=lfs diff=lfs merge=lfs -text | |
*.afdesign filter=lfs diff=lfs merge=lfs -text | |
*.blend1 filter=lfs diff=lfs merge=lfs -text | |
*.cfg filter=lfs diff=lfs merge=lfs -text |
[merge] | |
tool = unityyamlmerge | |
[mergetool "unityyamlmerge"] | |
trustExitCode = false | |
cmd = '~/Downloads/Tools/UnityYAMLMerge' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED" |
*/[Ll]ibrary/ | |
*/[Tt]emp/ | |
*/[Oo]bj/ | |
*/[Bb]uild/ | |
*/[Bb]uilds/ | |
# Autogenerated VS/MD solution and project files | |
ExportedObj/ | |
*.csproj | |
*.unityproj | |
*.sln | |
*.suo | |
*.tmp | |
*.user | |
*.userprefs | |
*.pidb | |
*.booproj | |
*.svd | |
# Unity3D generated meta files | |
*.pidb.meta | |
# Unity3D Generated File On Crash Reports | |
sysinfo.txt | |
# Builds | |
*.apk | |
*.unitypackage | |
*.zip | |
*.bin | |
### custom ignore list | |
.DS_Store | |
*.sublime-workspace | |
*/Assets/AssetStoreTools | |
*/Sirenix/Assemblies/AOT | |
*/Assets/StreamingAssets/com.unity.addressables/ | |
*/Assets/StreamingAssets/aa/ |
#!/bin/sh | |
# | |
# An example hook script to verify what is about to be committed. | |
# Called by "git commit" with no arguments. The hook should | |
# exit with non-zero status after issuing an appropriate message if | |
# it wants to stop the commit. | |
# | |
# To enable this hook, rename this file to "pre-commit". | |
# Redirect output to stderr. | |
exec 1>&2 | |
FILE_SIZE_LIMIT_KB=1024 | |
CURRENT_DIR="$(pwd)" | |
COLOR='\033[01;33m' | |
NOCOLOR='\033[0m' | |
HAS_ERROR="" | |
COUNTER=0 | |
# generate file extension filter from gitattributes for git-lfs tracked files | |
filter=$(cat .gitattributes | grep filter=lfs | awk '{printf "-e .%s$ ", $1}') | |
# before git commit, check non git-lfs tracked files to limit size | |
files=$(git diff --cached --name-only | sort | uniq | grep -v $filter) | |
while read -r file; do | |
if [ "$file" = "" ]; then | |
continue | |
fi | |
file_path=$CURRENT_DIR/$file | |
file_size=$(ls -l "$file_path" | awk '{print $5}') | |
file_size_kb=$((file_size / 1024)) | |
if [ "$file_size_kb" -ge "$FILE_SIZE_LIMIT_KB" ]; then | |
echo "${COLOR}${file}${NOCOLOR} has size ${file_size_kb}KB, over commit limit ${FILE_SIZE_LIMIT_KB}KB." | |
HAS_ERROR="YES" | |
((COUNTER++)) | |
fi | |
done <<< "$files" | |
# exit with error if any non-lfs tracked files are over file size limit | |
if [ "$HAS_ERROR" != "" ]; then | |
echo "$COUNTER files are larger than permitted, please fix them before commit" >&2 | |
exit 1 | |
fi | |
exit 0 |