GitHub HTTPS 提交代码与个人访问令牌配置指南

🧑 博主简介:CSDN博客专家历代文学网 (PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索"历代文学 ")总架构师,15年工作经验,精通Java编程高并发设计Springboot和微服务,熟悉LinuxESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。
技术合作 请加本人wx(注明来自csdn ):foreast_sea


🔐 GitHub HTTPS 提交代码与个人访问令牌配置指南

除了 SSH 方式,GitHub 确实支持通过 个人访问令牌(Personal Access Token,简称 PAT) 来配合 HTTPS 协议进行身份验证和提交代码。从 2021 年 8 月起,GitHub 不再支持仅用账户密码来通过 HTTPS 操作仓库,个人访问令牌(PAT)就成为了更安全的替代方式。

🔍 HTTPS 与 SSH 提交代码的区别

在开始具体步骤之前,我们先通过一个表格快速了解 HTTPS 和 SSH 两种方式提交代码的主要区别,这能帮助你更好地理解为什么选择 PAT(个人访问令牌)。

特性 HTTPS 地址 (https://github.com/...) SSH 地址 (git@github.com:...)
认证方式 个人访问令牌(PAT) 或 GitHub 密码(密码已不再支持命令行操作) SSH 密钥对
安全性 高(使用令牌,可精细控制权限)
便利性 需配置令牌,但可借助凭证助手缓存 一次配置,长期使用
适用场景 适用于所有网络(通常能绕过防火墙和代理限制),偶尔提交代码,或无法使用 SSH 的环境 推荐所有开发者,尤其频繁操作 GitHub 的情况
仓库地址示例 https://github.com/你的用户名/你的仓库名.git git@github.com:你的用户名/你的仓库名.git

💡 简要概括 :如果你希望通过 HTTPS 免密提交,核心是生成一个个人访问令牌(PAT),并在第一次推送时用它来代替密码。

📌 重要提示:HTTPS提交的身份验证变化

自2021年8月13日起,GitHub不再支持使用账户密码直接通过命令行进行HTTPS操作 (例如 git clone, git push)。你现在必须使用个人访问令牌(PAT) 或 SSH 密钥来代替。PAT 可以看作是一个具有特定权限的应用专用密码。

🛠️ 生成个人访问令牌(PAT)

  1. 登录GitHub :打开 GitHub 官网,登录你的账户。

  2. 进入设置 :点击页面右上角的你的头像,在下拉菜单中选择 "Settings"

  3. 选择开发者设置 :在左侧边栏中,找到并点击 "Developer settings"

  4. 选择个人访问令牌 :在左侧边栏中,点击 "Personal access tokens""Tokens (classic)"

  5. 生成新令牌 :点击 "Generate new token" 按钮,然后选择 "Generate new token (classic)"

  6. 配置令牌信息

    • Note:为你的令牌起一个描述性的名字,例如 "My Desktop PC - HTTPS"。
    • Expiration:为令牌设置一个有效期。出于安全考虑,建议设置一个期限。你可以选择一段时间,也可以自定义日期。
    • Select scopes选择此令牌的权限范围 。为了提交代码到私有仓库,你至少需要勾选 "repo" 权限。如果你还需要操作其他内容,如管理仓库的 Webhook,则需勾选相应权限。权限不是越多越好,按需分配即可
  7. 生成令牌 :滚动到页面底部,点击 "Generate token" 按钮。

  8. 复制并保存令牌令牌只会在此处显示一次! 请立即将其复制并妥善保存到安全的地方(如密码管理器)。离开此页面后你将无法再次查看此令牌。

⚙️ 使用 PAT 通过 HTTPS 操作 Git

现在你有了 PAT,就可以在操作远程仓库时用它来代替密码了。

1. 克隆仓库

克隆仓库时,当提示输入用户名和密码时:

  • 用户名:输入你的 GitHub 用户名。
  • 密码输入你刚刚生成的 PAT,而不是你的 GitHub 账户密码。
bash 复制代码
git clone https://github.com/你的用户名/你的仓库名.git

2. 在现有本地仓库中配置远程地址

如果你的本地仓库之前已经关联了一个 HTTPS 的远程地址,通常不需要修改远程地址本身(它仍然是 https://github.com/你的用户名/你的仓库名.git)。你只需要在首次推送时使用 PAT 进行认证即可。

你可以通过以下命令检查当前关联的远程地址:

bash 复制代码
git remote -v

如果输出显示远程地址是 SSH 格式的(git@github.com:...),而你想改用 HTTPS,可以使用以下命令修改:

bash 复制代码
git remote set-url origin https://github.com/你的用户名/你的仓库名.git

3. 进行提交和推送

在你对代码进行修改后,执行 git addgit commit 命令。当你执行 git push 时,Git 会提示你输入用户名和密码。此时:

  • Username:输入你的 GitHub 用户名。
  • Password输入你的 PAT
bash 复制代码
git add .
git commit -m "你的提交说明"
git push origin main  # 或者你的分支名,例如 master

💾 配置 Git 凭证助手缓存 PAT

为了避免每次执行 git push 或其他远程操作时都需要重新输入用户名和 PAT,你可以配置 Git 的凭证助手(credential helper) 来在本地缓存你的凭证一段时间。

在 Windows 上:

Git for Windows 通常自带一个叫做 "manager" 的凭证助手。你可以使用以下命令启用全局缓存:

bash 复制代码
git config --global credential.helper manager

在 macOS 上:

你可以使用 "osxkeychain" 助手将凭证存储在钥匙串中:

bash 复制代码
git config --global credential.helper osxkeychain

在 Linux 上:

你可以使用 "cache" 助手来临时缓存凭证(默认 15分钟):

bash 复制代码
git config --global credential.helper cache

如果你想设置更长的缓存时间(例如 1 小时,3600 秒),可以这样设置:

bash 复制代码
git config --global credential.helper "cache --timeout=3600"

配置凭证助手后,第一次操作远程仓库时输入了用户名和 PAT,系统就会将其缓存起来。在缓存有效期内,后续操作就不再需要手动输入了。

❌ 常见问题与解决

  • 提示认证失败(Authentication failed)
    • 请确保你在输入密码时粘贴的是 PAT,而不是你的 GitHub 账户密码。
    • 检查 PAT 的权限范围(Scopes) 是否足够(例如,是否勾选了 repo)。
    • 检查 PAT 是否已过期。如果过期,你需要重新生成一个新的 PAT。
  • 远程地址错误
    • 确保你的远程仓库地址是 HTTPS 格式(以 https://github.com/ 开头),而不是 SSH 格式(以 git@github.com: 开头)。你可以通过 git remote -v 命令查看,并使用 git remote set-url origin [新的HTTPS地址] 来修改。
  • 凭证助手不工作
    • 尝试重新输入一次凭证以触发缓存。可以执行一个会触发认证的命令,例如 git fetch
    • 检查 Git 的全局配置 git config --global --list,确认 credential.helper 是否设置正确。

💎 核心操作流程总结

整个通过 HTTPS 和 PAT 提交代码的过程,可以概括为以下几个关键步骤,你可以按此流程操作:
生成Personal Access Token
PAT 复制并妥善保存PAT 使用HTTPS URL克隆仓库
或修改现有仓库远程地址 进行代码修改并提交
git add & git commit 推送提交时使用PAT作为密码 可选: 配置凭证助手缓存PAT

相关推荐
troy1281 分钟前
Codex 安全盲区:代码漏洞生成实测
windows·python·ci/cd·pycharm·django·github·fastapi
其实防守也摸鱼1 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
m4Rk_2 小时前
【论文阅读】Agent 记忆机制(75):TiMem——用时间记忆树实现长期记忆的层级巩固
论文阅读·人工智能·学习·开源·github
今夕资源网3 小时前
一只鹈鹕骑着单车闯海岛:开源 3D 网页游戏《鹈鹕骑车》体验与部署教程 github开源
开源·github·ai智能测试题·ai智能测试
沙蒿同学5 小时前
我把架构约定编译成了会变红的测试:Wails v2 + Go + Vue3 桌面脚手架实战
前端·后端·github
落魄大学生之流水线上谋生计6 小时前
幻境相机 Mirage Camera
github
wangruofeng6 小时前
从一个 10 万星 AI Agent 项目里,能学到什么真正的软件工程
github·agent·ai编程
子林super6 小时前
复杂JSON Schema结构与输出校验
github
子林super6 小时前
结构化输出解析失败处理策略
github
那年窗外下的雪.7 小时前
AIDC 学习日志|第 27 天|EVPN 多归属收敛时间线与 Leaf2 接管验证
网络协议·学习·http·tcpdump