解决SourceTree每次拉取、推送代码重复输入密码问题

为避免每次提交代码时重复输入账号密码,可以通过编辑git仓库的config文件,添加url含账号密码的信息。尽管这可能降低安全性,但对个人练习项目影响不大。操作方法是用记事本打开config文件,将url改为https://账号:密码@原git地址的形式。

现象:每次提交代码时需重复输入账密验证身份

解决方式:

找到你git仓库的config文件 

编辑修改,记事本格式打开即可

url新增账密信息即可,但是会降低安全性,因为这个是我自个练手的项目,所以安全性无伤大雅

 url = https://账号:密码@原git地址

 

 

<think>嗯,用户遇到了Sourcetree在修改Gitee密码后无法推送问题。这个问题很典型,通常是因为Sourcetree保存了旧的凭据导致的。用户提到"先推送报错",但核心矛盾应该还是认证失败。 参考了三个引用资料:引用[1]明确指出密码修改后Sourcetree仍用旧密码问题;引用[2]补充了SSH和HTTPS协议配置差异的情况;引用[3]则展示了具体的HTTP Basic认证失败报错。这三个点正好覆盖了主要解决方案。 用户可能已经尝试过重新输入密码但未果,需要更彻底的凭据清理方案。ta的报错信息里大概率会出现"Access denied"或"认证失败"字样。考虑到ta特意强调"先推送"的报错顺序,可能遇到的是推送失败后也连锁失败的场景,但根源都在认证环节。 解决方案需要分层次:先从最简单的凭据管理器清理开始,这是最常见解决方案;若无效再考虑SSH密钥切换;最后是仓库地址协议转换。特别要注意Windows凭据管理器的"Generic Credentials"分类,很多用户会忽略这个位置。 需要提醒用户注意HTTPS和SSH协议对应的不同认证方式:HTTPS靠账号密码,SSH靠密钥对。如果用户clone代码时用的SSH方式,后续修改密码确实不会影响操作——但反过来如果最初用HTTPS,密码修改就必须更新凭据。 最后补充的万能重装法虽然有效,但应该作为最后手段。用户可能已经搜索过很多方案,所以回复要突出操作细节,比如强调"完全删除Sourcetree配置目录"这样的关键步骤。</think>好的,这个问题的核心在于**Sourcetree 保存的认证信息(用户名/密码)过期或错误**,导致无法与远程仓库(如 Gitee)通信。以下是清晰的解决步骤: **核心原因:** 当你修改了 Gitee 的密码后,Sourcetree 内部存储的用于连接 Gitee 的旧密码就失效了。Sourcetree (`fetch`/`pull`) 或推送 (`push`) 时,仍然尝试使用旧的、无效的密码进行认证,导致被 Gitee 服务器拒绝访问 (`Access denied`)。 **解决方案:更新 Sourcetree 中保存的 Gitee 凭据** 1. **检查仓库使用的协议 (重要!)** * 在 Sourcetree 左侧仓库列表中,右键单击你的项目仓库。 * 选择 **“仓库设置...”** (或 **“设置...”** / **“Remote”** / **“Remotes”**,具体名称可能略有不同)。 * 在打开的设置窗口中,找到 **“远程”** (Remote) 选项卡。 * 选中默认的 `origin` 远程。 * 查看 **“URL/路径”** 字段: * 如果 URL 以 `https://gitee.com/...` 开头,那么你使用的是 **HTTPS 协议**。 * 如果 URL 以 `git@gitee.com:...` 开头,那么你使用的是 **SSH 协议**。 2. **根据协议类型更新凭据:** * **情况 A: 使用 HTTPS 协议 (`https://...`)** * **方法 1: 通过 Windows 凭据管理器 (推荐)** 1. 按下 `Win + R` 键,输入 `control /name Microsoft.CredentialManager` 并按回车,打开 **“Windows 凭据管理器”**。 2. 选择 **“Windows 凭据”** 或 **“普通凭据”**。 3. 在列表中找到与 `gitee.com` 相关的凭据条目(可能包含 `git:https://gitee.com` 或类似字样)。 4. 点击该条目,选择 **“编辑”**。 5. 在 **“密码”** 字段中,输入你**最新的 Gitee 账号密码**。 6. 点击 **“保存”**。 7. 关闭凭据管理器。 8. 回到 Sourcetree,尝试推送操作。系统应该会使用你刚刚更新的密码进行认证。 * **方法 2: 强制 Sourcetree 重新提示输入密码** 1. 在 Sourcetree 中,尝试执行 (`Pull`) 或推送 (`Push`) 操作。 2. 当弹出认证窗口(要求输入用户名和密码)时: * 确保 **“用户名”** 是你的 Gitee 用户名或注册邮箱。 * 在 **“密码”** 字段中输入你**最新的 Gitee 账号密码**。 * **关键:** 勾选类似 **“记住密码”** 或 **“保存凭据”** 的选项(不同版本提示可能不同)。 3. 点击 **“登录”** 或 **“确定”**。 4. 如果认证成功,Sourcetree 会将新密码保存起来(通常也是保存在 Windows 凭据管理器中),后续操作应该恢复正常。 * **情况 B: 使用 SSH 协议 (`git@gitee.com:...`)** * **SSH 协议不依赖密码,而是依赖密钥对。** 修改 Gitee 网站密码通常不会直接影响 SSH 连接。 * **问题排查点:** 1. **确认 SSH 密钥是否已添加到 Gitee 账户:** 登录 Gitee 网站,进入个人设置 -> SSH 公钥,确保你本地计算机使用的 SSH 公钥已正确添加。 2. **确认 Sourcetree 使用正确的 SSH 客户端和密钥:** * 打开 Sourcetree 的 **“工具”** -> **“选项”**。 * 找到 **“一般”** 或 **“SSH 客户端配置”** 部分。 * **SSH 客户端:** 确保选择的是 **“OpenSSH”**(这是 Windows 10/11 内置的,最常用)[^2]。避免选择 PuTTY/Plink 除非你特别配置过。 * **SSH 密钥:** 点击旁边的 **“浏览”** 按钮,导航并选择你用于 Gitee 认证的 **私钥文件** (通常是 `id_rsa` 或 `id_ed25519`,**注意是私钥,没有 `.pub` 后缀**)。确保你选择的私钥文件与你添加到 Gitee 账户的公钥是配对的。 * 点击 **“确定”** 保存设置。 3. 尝试推送操作。如果密钥配置正确,应该可以成功。 3. **验证解决方案** * 完成上述步骤后,在 Sourcetree 中尝试执行 ** (`Pull`)** 操作。如果成功,说明认证问题解决。 * 接着尝试执行 **推送 (`Push`)** 操作。如果推送也成功,问题完全解决。 **如果以上方法仍不奏效 (终极方案):** * **清除 Sourcetree 的所有缓存和配置 (谨慎操作):** 1. 完全退出 Sourcetree。 2. 删除 Sourcetree 的配置文件目录(位置因操作系统和安装方式而异): * **Windows (通常):** `%LocalAppData%\Atlassian\SourceTree` (在文件资源管理器地址栏输入此路径并按回车) * **macOS (通常):** `~/Library/Application Support/SourceTree/` 3. **(重要)** 同时按照 **情况 A - 方法 1** 的步骤,在 Windows 凭据管理器中删除所有与 `gitee.com` 相关的凭据条目。 4. 重新启动 Sourcetree。它会像首次运行一样引导你进行初始设置(可能需要重新添加仓库)。 5. 重新添加你的仓库。在克隆或添加现有仓库时,它会提示你输入用户名和**新密码**,并确保勾选保存凭据的选项。或者,按照 **情况 B** 的步骤重新配置 SSH 密钥。 **总结关键步骤流程图:** ``` 开始 │ ├── 检查仓库URL协议 (HTTPS / SSH) ──┐ │ │ ├── (HTTPS) │ │ ├── 方法1: 更新Windows凭据管理器密码 ──┐ │ │ │ │ └── 方法2: Sourcetree操作触发重新输入密码 │ │ │ └── (SSH) │ ├── 确认Gitee账户已添加公钥 │ │ │ └── 确认Sourcetree使用OpenSSH和正确私钥 ──┘ │ ├── 尝试(Pull)操作 ── 成功? ──┐ │ │ └── 尝试推送(Push)操作 ── 成功? ──┤ │ └── 问题解决! │ └── 失败? │ └── 终极方案: 清除Sourcetree配置和凭据,重新添加仓库 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值