You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免Sourcetree识别副机本地变更,拉取时无需暂存大量文件?

Unity项目Sourcetree拉取时重复提示大量无关文件暂存的解决方案

核心原因

该问题90%以上场景是未正确配置Unity专属的.gitignore规则,导致Library、Temp、Logs等Unity自动生成的临时目录被纳入Git追踪。这类文件会在Unity运行时自动修改,哪怕副机不做任何手动修改,也会和远端仓库内容产生冲突,触发暂存提示。剩余场景为两台设备的Git换行符、文件权限配置不一致导致的假变更。

分步解决方案

1. 配置标准Unity .gitignore规则

在项目根目录创建/修改.gitignore文件,添加以下规则,覆盖所有不需要版本追踪的自动生成文件:

# Unity 自动生成目录
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
/[Pp]roject[Ss]ettings/SceneTemplateSettings.json

# 编辑器缓存文件
.vs/
*.csproj
*.sln
*.suo
*.user
*.userprefs

# 系统生成文件
.DS_Store
Thumbs.db

2. 清理已误追踪的临时文件

在主机端完成以下操作后推送到远端:

  • 先将主机端所有有效变更提交推送完毕
  • 打开Sourcetree内置终端,依次执行以下命令:
    git rm -r --cached .
    git add .
    git commit -m "chore: 清理误追踪临时文件,更新.gitignore"
    git push
    
  • 副机端执行以下命令,强制同步远端内容,覆盖本地无效变更:
    git fetch origin
    git reset --hard origin/[你的分支名,如main/master]
    

3. 修复假变更问题

如果完成上述操作后仍有大量变更提示,执行以下配置统一两端Git规则,忽略无意义的变更检测:

  • 忽略文件权限变更:两端均执行 git config --global core.fileMode false
  • 统一换行符规则:
    Windows设备执行:git config --global core.autocrlf true
    Mac/Linux设备执行:git config --global core.autocrlf input

4. Sourcetree端优化配置

  • 打开Sourcetree偏好设置-Git,勾选「不检测可执行位变更」
  • 关闭「实时文件变更检测」,副机仅拉取场景下无需实时扫描,拉取前手动刷新即可

更优同步方案

如果副机仅用于构建、预览,完全不需要修改内容,可以采用浅克隆+强制同步的方案,彻底避免变更检测耗时:

  • 副机重新克隆仓库时添加浅克隆参数:git clone --depth 1 [仓库地址],大幅缩小仓库体积和扫描范围
  • 每次需要同步时直接执行 git clean -df && git pull --rebase,自动清理本地所有非追踪文件后拉取,无需手动暂存操作

内容的提问来源于stack exchange,提问作者Leon Hogan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:48:01