Sourcetree拉取/提交代码一直转圈?10秒快速解决技巧
作为开发人员常用的Git图形化工具,Sourcetree以简洁的界面、便捷的操作,成为很多人管理代码的首选。但在日常使用中,不少人会遇到一个棘手问题:点击拉取(Pull)或提交(Commit)代码后,界面一直转圈加载,既不报错也不完成操作,反复重试也无济于事,严重影响开发效率。
其实这个问题无需复杂操作,无需重装软件,更无需重新配置仓库,一个简单的步骤就能快速解决,同时我们也会拆解问题根源,帮你彻底避免后续再踩坑。
一、10秒快速解决:一步到位
无论你使用的是Windows还是Mac版本的Sourcetree,操作步骤完全一致,全程不超过10秒,新手也能轻松上手:
- 打开正在转圈的Sourcetree客户端(无需关闭当前操作窗口,直接操作即可);
- 在顶部菜单栏找到【工具】选项,点击下拉菜单;
- 在下拉菜单中选择【选项】(Mac版本部分翻译为【偏好设置】,功能一致);
- 无需修改任何配置,直接点击窗口底部的【保存】按钮;
- 关闭【选项】窗口,回到Sourcetree主界面,此时会发现转圈已停止,拉取/提交操作可正常执行。
二、问题根源:SSH密钥丢失/未加载
很多人会疑惑,为什么“打开选项保存一下”就能解决问题?核心原因在于:SSH密钥丢失或未被Sourcetree正确加载,导致工具无法完成与远程仓库的身份验证,进而陷入无限加载状态。
我们都知道,Git通过SSH密钥实现本地与远程仓库的安全连接,Sourcetree会默认读取本地的SSH密钥信息,用于身份验证。但在以下场景中,容易出现SSH密钥“丢失”(未被加载)的情况:
- 电脑重启后,SSH代理未自动启动,导致Sourcetree无法读取密钥;
- Sourcetree配置文件缓存异常,导致密钥路径无法被正确识别;
- 更换Git版本、重装Sourcetree后,密钥配置未被自动同步;
- 多账户切换、密钥路径修改后,Sourcetree未及时更新配置。
- 而点击【工具】→【选项】→【保存】的操作,本质是强制Sourcetree重新读取本地SSH密钥配置、刷新缓存,相当于“唤醒”了丢失的密钥连接,无需重新生成或配置密钥,就能快速恢复身份验证功能,解决转圈问题。
三、拓展方案:彻底避免后续再出现
如果频繁出现拉取/提交转圈的情况,仅靠临时保存选项只能治标,建议通过以下2个方法彻底规避,一劳永逸:
方法1:检查并固定SSH密钥配置
- 打开Sourcetree,进入【工具】→【选项】;
- 在左侧导航栏找到【SSH】选项,查看“SSH客户端”和“私钥路径”;
- 确认私钥路径正确(一般默认路径为C:\Users\用户名\.ssh\id_rsa,Mac为~/.ssh/id_rsa),若路径错误,手动修改为本地SSH私钥的实际路径;
- 选择“使用内置SSH客户端”(避免与系统SSH冲突),点击【保存】,后续重启工具也能正常加载密钥。
方法2:设置SSH代理自动启动(Windows为例)
- 按下Win+R,输入cmd打开命令提示符;
- 输入命令 eval "$(ssh-agent -s)" 启动SSH代理;
- 再输入命令 ssh-add 私钥路径(如ssh-add C:\Users\用户名\.ssh\id_rsa),将私钥添加到代理;
- 设置SSH代理开机自动启动(百度搜索“SSH代理开机自启”,根据系统版本配置,步骤简单),确保重启电脑后密钥仍能被正常加载。
四、常见补充说明
- 若保存选项后仍无法解决,可检查网络连接(网络不稳定也会导致转圈),或关闭Sourcetree重新打开,重复快速解决步骤;
- 若提示“Permission denied (publickey)”,说明SSH密钥确实丢失或配置错误,需重新生成密钥并添加到远程仓库(GitHub/GitLab等),具体可参考SSH密钥配置教程;
- Mac用户操作差异:【工具】→【偏好设置】,其余步骤与Windows一致,保存后即可恢复正常。
- 总结来说,Sourcetree拉取/提交代码转圈,90%以上都是SSH密钥未加载导致的,无需复杂排查,“工具→选项→保存”三步就能快速解决。如果频繁出现,配置好SSH密钥路径和代理自启,就能彻底摆脱这个困扰,专注于代码开发~