能否让SourceTree等Git GUI工具支持Git工作树?
解决SourceTree适配Git工作树目录的问题
问题场景
通过git init创建主仓库A(路径/home/user/A_dir),SourceTree打开该目录正常;使用git worktree add --checkout /home/user/B_dir <branch_name>创建工作树后,B_dir下仅有内容为gitfile:/home/user/A_dir/.git/worktrees/A1的.git文件,SmartGit打开报错,需让SourceTree正常适配B_dir。
可行解决方案
- 升级SourceTree到最新稳定版:3.0及以上版本的SourceTree已原生支持Git工作树,旧版本可能无法识别
.git文件指向的工作树仓库,升级后直接打开B_dir即可正常识别。 - 手动添加仓库到SourceTree:若升级后仍无法自动识别,打开SourceTree点击「添加仓库」,选择B_dir目录,SourceTree会读取
.git文件中的路径,自动关联到对应工作树的仓库数据。 - 修复异常工作树记录:如果Git本身识别工作树有问题(比如出现类似SmartGit的报错),按以下步骤操作:
- 进入主仓库A_dir,执行
git worktree list查看所有工作树的状态,确认B_dir对应的记录是否存在且路径正确。 - 若记录异常,执行
git worktree prune清理无效的工作树记录。 - 重新创建工作树:
git worktree add --checkout /home/user/B_dir <branch_name>。
- 进入主仓库A_dir,执行
- 验证Git基础功能:在B_dir目录下执行
git status,若能正常输出分支状态,说明Git本身无问题,重启SourceTree或重新添加仓库即可解决识别问题。
内容的提问来源于stack exchange,提问作者Allen Hu
相关产品推荐
相关产品推荐

