本文配置 3 个常用的 SourceTree Custom Actions,用于在 Windows 下管理 Git 的 assume-unchanged 文件,并在文末附带 Windows 鼠标右键快速用 SourceTree 打开项目的配置。
一、功能说明
| Action | 功能 | 命令 |
|---|---|---|
Assume Unchanged |
对选中的文件设置 assume-unchanged |
git update-index --assume-unchanged <file> |
List Assume Unchanged |
查看所有标记为 assume-unchanged 的文件 |
git ls-files -v | findstr /b "h" |
Restore All Assume Unchanged |
一键恢复所有 assume-unchanged 文件 |
git update-index --no-assume-unchanged <file> |
提示:
assume-unchanged仅作用于本地 Git Index,只对已被 Git 跟踪的文件生效,不修改.gitignore,不影响远程仓库。
二、脚本目录
统一存放目录:
1 | D:\tools\ASoureTreeActions\ |
三、Action 1:Assume Unchanged
1. BAT 脚本
文件:D:\tools\ASoureTreeActions\git-assume-unchanged.bat
1 | @echo off |
2. SourceTree 配置
路径:Tools → Options → Custom Actions
- Menu Caption:
Assume Unchanged - Script to run:
D:\tools\ASoureTreeActions\git-assume-unchanged.bat - Parameters:
"$FILE" - 选项: 勾选
Open in a separate window与Show Full Output
3. 使用
在 SourceTree 文件列表中:选中文件 → 右键/顶部 Actions → Custom Actions → Assume Unchanged
四、Action 2:List Assume Unchanged
1. BAT 脚本
文件:D:\tools\ASoureTreeActions\git-list-assume-unchanged.bat
1 | @echo off |
2. SourceTree 配置
- Menu Caption:
List Assume Unchanged - Script to run:
D:\tools\ASoureTreeActions\git-list-assume-unchanged.bat - Parameters: 留空
- 选项: 勾选
Open in a separate window与Show Full Output
3. 使用
Actions → Custom Actions → List Assume Unchanged
输出以 h 开头即为当前忽略的文件。
五、Action 3:Restore All Assume Unchanged
1. BAT 脚本
文件:D:\tools\ASoureTreeActions\git-restore-assume-unchanged.bat
1 | @echo off |
2. SourceTree 配置
- Menu Caption:
Restore All Assume Unchanged - Script to run:
D:\tools\ASoureTreeActions\git-restore-assume-unchanged.bat - Parameters: 留空
- 选项: 勾选
Open in a separate window与Show Full Output
3. 使用
Actions → Custom Actions → Restore All Assume Unchanged
六、三个 Action 总配置表
| Action | Script to run | Parameters | 窗口选项 |
|---|---|---|---|
Assume Unchanged |
D:\tools\ASoureTreeActions\git-assume-unchanged.bat |
"$FILE" |
独立窗口打开、显示输出 |
List Assume Unchanged |
D:\tools\ASoureTreeActions\git-list-assume-unchanged.bat |
(留空) | 独立窗口打开、显示输出 |
Restore All Assume Unchanged |
D:\tools\ASoureTreeActions\git-restore-assume-unchanged.bat |
(留空) | 独立窗口打开、显示输出 |
七、直接导入 customactions.xml
关闭 SourceTree,打开配置文件:
1 | %LOCALAPPDATA%\Atlassian\SourceTree\customactions.xml |
将以下 XML 内容写入或追加:
1 |
|
八、日常使用流程
- 临时忽略:修改本地配置后,选中文件执行
Assume Unchanged,文件不再出现在修改列表中; - 查看清单:执行
List Assume Unchanged,查看当前被忽略的文件; - 全部恢复:更新或切换分支前,执行
Restore All Assume Unchanged,恢复正常 Git 追踪。
九、注意事项
- 仅适用于已跟踪文件:无法忽略未跟踪的新文件(新文件请用
.gitignore); - 仅影响本地:不产生 Commit,不修改远程,不影响其他团队成员;
- 适合个人差异配置:适合本地调试配置、环境差异文件,不要长期用于替代工程化的环境配置文件。
十、Windows 右键配置:使用 SourceTree 打开指定目录
在 Windows 资源管理器中右键任意文件夹或空白处,直接用 SourceTree 打开该仓库。
核心命令
1 | "你的SourceTree.exe路径" -f "%V" |
其中
-f指定仓库路径,"%V"代表右键选中的目录。
一键注册表脚本(.reg)
新建 OpenWithSourceTree.reg,将以下内容保存后双击导入(注意替换你的 SourceTree.exe 实际路径,路径中的反斜杠需写成双反斜杠 \\):
1 | Windows Registry Editor Version 5.00 |