SourceTree无法识别自定义命名.git文件夹的Git仓库,如何解决?
解决方案
方案1:快速切换SourceTree识别的仓库
Git原生支持将工作目录下的.git设为纯文本指向文件,所有调用原生Git能力的客户端(包括SourceTree)都兼容该特性,无需重命名文件夹即可切换识别的仓库:
- 需要操作
.gitone对应的团队仓库时,在WorkingFolder根目录创建名为.git的纯文本文件,写入内容:gitdir: ./.gitone - 需要操作
.gittwo对应的个人仓库时,修改.git文件内容为:gitdir: ./.gittwo
修改后重启SourceTree即可自动识别对应仓库,操作成本极低。
方案2:同时在SourceTree管理两个仓库
如果不需要来回切换,想要两个仓库同时在SourceTree中显示,可按以下步骤配置:
- 在
WorkingFolder的同级目录创建两个空文件夹,分别命名为TeamRepo(对应团队仓库)、PersonalRepo(对应个人仓库) - 在
TeamRepo文件夹中新建.git纯文本文件,写入两行配置:
gitdir: ../WorkingFolder/.gitone worktree: ../WorkingFolder
- 在
PersonalRepo文件夹中新建.git纯文本文件,写入两行配置:
gitdir: ../WorkingFolder/.gittwo worktree: ../WorkingFolder
- 打开SourceTree,分别添加
TeamRepo和PersonalRepo作为本地仓库即可。两个仓库共用同一个工作目录,操作完全独立,无需修改原有文件结构。
更符合Git规范的替代方案
如果不想维护自定义命名的Git目录,可使用Git原生的多远程+稀疏检出能力实现需求:
- 保留默认
.git目录作为团队仓库的本地存储,正常在SourceTree中管理 - 给个人仓库添加独立远程地址:
git remote add personal <你的个人仓库地址> - 配置稀疏检出规则,仅勾选你需要提交到个人仓库的目录/文件,推送时指定到
personal远程的对应分支即可,完全符合Git使用规范,不需要拆分Git存储目录。
内容的提问来源于stack exchange,提问作者Huy Phạm
相关产品推荐
相关产品推荐

