网络问题
git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy http://127.0.0.1:7897
当您使用 --global 标志时,Git 会将配置写入您的全局配置文件(通常是 ~/.gitconfig)。这个配置会针对您当前用户账户的所有 Git 仓库生效,并且会一直保持,直到您手动修改或删除它。
认证问题
GitHub 调整了安全策略,
传统的用户名和密码通过 HTTPS 协议进行身份验证github已经停止了。
需要该用更安全的身份验证方式,主要有两种方法:使用 Personal Access Token (PAT) 替换密码,或者使用 SSH 密钥。
使用 Personal Access Token (PAT) 替换密码(推荐)
对于使用 HTTPS 协议的用户来说,使用 PAT 是最简单、直接的解决方案。
步骤 1:生成 Personal Access Token (PAT)
-
登录 GitHub: 访问您的 GitHub 账户。
-
进入设置 (Settings): 点击右上角的头像,选择 Settings。
-
进入开发者设置 (Developer settings): 在左侧菜单栏底部,选择 Developer settings。
-
进入 Personal access tokens (PATs): 在左侧菜单栏,选择 Personal access tokens -> Tokens (classic)。
-
生成新令牌 (Generate new token): 点击 Generate new token (classic)。
-
配置令牌:
-
Note (备注): 为令牌取一个易于识别的名称(例如:SourceTree-Token)。
-
Expiration (有效期): 选择一个合适的有效期(例如:90天或30天,不推荐选择 Never)。
-
Scopes (权限): 勾选 repo (访问私有和公共仓库的权限)。如果您需要推送到 Gist,也可以勾选 gist。
- 生成令牌并保存: 点击底部的 Generate token。
重要提示: 生成后,GitHub 会显示一次完整的 PAT 字符串。请立即复制这个字符串并妥善保存,离开页面后将无法再次看到。
步骤 2:在 SourceTree 中使用 PAT
SourceTree 通常会依赖您的操作系统或 Git 客户端的凭据管理器。
方法 A:当 SourceTree 再次要求验证时输入 PAT
-
在 SourceTree 中,尝试再次执行 Push 操作。
-
当弹出用户名/密码输入框时:
-
在用户名 (Username) 字段中输入您的 GitHub 用户名。
-
在密码 (Password) 字段中粘贴您刚刚生成的 PAT 字符串,而不是您的 GitHub 账户密码。
- 勾选记住密码选项,然后确认。
方法 B:通过 SourceTree 的账户设置更新(针对某些 SourceTree 版本)
在 SourceTree 中,进入 Tools (工具) -> Options (选项) -> Authentication (认证) 或 Accounts (账户)。
如果您已经保存了 GitHub 账户信息,尝试更新该账户的密码为 PAT。
清除 Git 凭据缓存
如果之前尝试过,SourceTree 或您的操作系统会缓存了旧的密码,需要先清除
如果您使用的是 Windows:
-
打开 控制面板 (Control Panel)。
-
进入 用户帐户 (User Accounts)。
-
选择 凭据管理器 (Credential Manager)。
-
选择 Windows 凭据 (Windows Credentials)。
-
在“通用凭据 (Generic Credentials)”列表中,查找与 git:https://github.com 或 github.com 相关的条目。
-
点击找到的 GitHub 相关条目,然后选择 删除 (Remove)。
如果您使用的是 macOS:
-
打开 “钥匙串访问” (Keychain Access) 应用程序。您可以在 Spotlight 搜索中找到它。
-
在左侧选择 “登录” (login) 和 “密码” (Passwords)。
-
在搜索框中输入 github.com。
-
找到与 github.com 相关的条目(通常是 internet password 类型)。
-
右键点击该条目,选择 “删除” (Delete)。
清除缓存后的操作
清除凭据后,请返回 SourceTree:
-
再次尝试执行 Push (推送) 操作。
-
等待 SourceTree 弹出新的登录窗口。
-
在弹出的窗口中,再次输入您的 GitHub 用户名。
-
在密码字段中,粘贴您之前生成的 Personal Access Token (PAT)。
-
确保您粘贴的是 PAT 字符串,而不是您的 GitHub 账户密码。
完成以上步骤后,Git 应该会使用您的 PAT 进行验证,解决“Authentication failed”错误。
MacOS最新版本有了个“密码”工具,钥匙串访问应用默认不在应用列表中。
请尝试以下两种最快的方法来打开“钥匙串访问”:
方法一:使用 Spotlight 搜索(推荐)
这是 macOS 上最快的启动应用程序方式。
按下键盘上的 Command (⌘) + Space 组合键,打开 Spotlight 搜索。
在搜索框中输入 Keychain Access (英文)或 钥匙串访问 (中文)。
应用程序图标出现后,按下 Enter 键即可打开。
方法二:通过 Finder 导航
如果您喜欢通过文件夹查找,可以按照以下路径找到它:
打开 Finder。
在顶部菜单栏中,点击 前往 (Go) -> 实用工具 (Utilities)。
在“实用工具”文件夹中,找到并双击打开 “钥匙串访问” (Keychain Access)。
解决方案二:切换到 SSH 协议
SSH 协议是另一种更安全、更便捷的 Git 交互方式,一旦配置好,后续操作无需输入任何凭据。
步骤 1:生成 SSH 密钥
打开您的终端(Windows 用户可以使用 Git Bash)。
运行命令生成密钥(请将 your_email@example.com 替换为您的 GitHub 邮箱):
ssh-keygen -t ed25519 -C "your_email@example.com"
一路按回车,直到生成完成(密钥通常会保存在 ~/.ssh/id_ed25519)。
步骤 2:将公钥添加到 GitHub
复制您的公钥内容。在终端中运行(Mac/Linux):
cat ~/.ssh/id_ed25519.pub
或者手动找到该文件并打开。
登录 GitHub,进入 Settings -> SSH and GPG keys。
点击 New SSH key。
在 Title 处输入一个名称(例如:My SourceTree SSH Key),将公钥内容粘贴到 Key 文本框中。
点击 Add SSH key。
步骤 3:在 SourceTree 中切换仓库地址
由于您是通过 HTTPS 克隆的仓库 (https://github.com/ghj1976/taichi.git),您需要将远程仓库地址切换为 SSH 格式。
在 SourceTree 中,选中您的项目。
进入 Repository (仓库) -> Repository Settings (仓库设置)。
找到 Remotes (远程仓库) 选项卡。
选择 origin,点击 Edit (编辑)。
重要: 将 URL 从 https://github.com/ghj1976/taichi.git 改为 git@github.com:ghj1976/taichi.git。
点击确定,然后再次尝试推送。
浙公网安备 33010602011771号