GitHub HTTPS 提交代码与个人访问令牌配置指南
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,
15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生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://github.com/你的用户名/你的仓库名.gitgit@github.com:你的用户名/你的仓库名.git💡 简要概括:如果你希望通过 HTTPS 免密提交,核心是生成一个个人访问令牌(PAT),并在第一次推送时用它来代替密码。
📌 重要提示:HTTPS提交的身份验证变化
自2021年8月13日起,GitHub不再支持使用账户密码直接通过命令行进行HTTPS操作(例如 git clone, git push)。你现在必须使用个人访问令牌(PAT) 或 SSH 密钥来代替。PAT 可以看作是一个具有特定权限的应用专用密码。
🛠️ 生成个人访问令牌(PAT)
-
登录GitHub:打开 GitHub 官网,登录你的账户。
-
进入设置:点击页面右上角的你的头像,在下拉菜单中选择 “Settings”。
-
选择开发者设置:在左侧边栏中,找到并点击 “Developer settings”。
-
选择个人访问令牌:在左侧边栏中,点击 “Personal access tokens” → “Tokens (classic)”。
-
生成新令牌:点击 “Generate new token” 按钮,然后选择 “Generate new token (classic)”。
-
配置令牌信息:
- Note:为你的令牌起一个描述性的名字,例如 “My Desktop PC - HTTPS”。
- Expiration:为令牌设置一个有效期。出于安全考虑,建议设置一个期限。你可以选择一段时间,也可以自定义日期。
- Select scopes:选择此令牌的权限范围。为了提交代码到私有仓库,你至少需要勾选 “repo” 权限。如果你还需要操作其他内容,如管理仓库的 Webhook,则需勾选相应权限。权限不是越多越好,按需分配即可。
-
生成令牌:滚动到页面底部,点击 “Generate token” 按钮。
-
复制并保存令牌:令牌只会在此处显示一次! 请立即将其复制并妥善保存到安全的地方(如密码管理器)。离开此页面后你将无法再次查看此令牌。

⚙️ 使用 PAT 通过 HTTPS 操作 Git
现在你有了 PAT,就可以在操作远程仓库时用它来代替密码了。
1. 克隆仓库
克隆仓库时,当提示输入用户名和密码时:
- 用户名:输入你的 GitHub 用户名。
- 密码:输入你刚刚生成的 PAT,而不是你的 GitHub 账户密码。
git clone https://github.com/你的用户名/你的仓库名.git
2. 在现有本地仓库中配置远程地址
如果你的本地仓库之前已经关联了一个 HTTPS 的远程地址,通常不需要修改远程地址本身(它仍然是 https://github.com/你的用户名/你的仓库名.git)。你只需要在首次推送时使用 PAT 进行认证即可。
你可以通过以下命令检查当前关联的远程地址:
git remote -v
如果输出显示远程地址是 SSH 格式的(git@github.com:...),而你想改用 HTTPS,可以使用以下命令修改:
git remote set-url origin https://github.com/你的用户名/你的仓库名.git
3. 进行提交和推送
在你对代码进行修改后,执行 git add 和 git commit 命令。当你执行 git push 时,Git 会提示你输入用户名和密码。此时:
- Username:输入你的 GitHub 用户名。
- Password:输入你的 PAT。
git add .git commit -m \"你的提交说明\"git push origin main # 或者你的分支名,例如 master
💾 配置 Git 凭证助手缓存 PAT
为了避免每次执行 git push 或其他远程操作时都需要重新输入用户名和 PAT,你可以配置 Git 的凭证助手(credential helper) 来在本地缓存你的凭证一段时间。
在 Windows 上:
Git for Windows 通常自带一个叫做 “manager” 的凭证助手。你可以使用以下命令启用全局缓存:
git config --global credential.helper manager
在 macOS 上:
你可以使用 “osxkeychain” 助手将凭证存储在钥匙串中:
git config --global credential.helper osxkeychain
在 Linux 上:
你可以使用 “cache” 助手来临时缓存凭证(默认 15分钟):
git config --global credential.helper cache
如果你想设置更长的缓存时间(例如 1 小时,3600 秒),可以这样设置:
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地址]来修改。
- 确保你的远程仓库地址是 HTTPS 格式(以
- 凭证助手不工作:
- 尝试重新输入一次凭证以触发缓存。可以执行一个会触发认证的命令,例如
git fetch。 - 检查 Git 的全局配置
git config --global --list,确认credential.helper是否设置正确。
- 尝试重新输入一次凭证以触发缓存。可以执行一个会触发认证的命令,例如
💎 核心操作流程总结
整个通过 HTTPS 和 PAT 提交代码的过程,可以概括为以下几个关键步骤,你可以按此流程操作:
#mermaid-svg-zDianfUnyyLEEqYC {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-zDianfUnyyLEEqYC .error-icon{fill:#552222;}#mermaid-svg-zDianfUnyyLEEqYC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-zDianfUnyyLEEqYC .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-zDianfUnyyLEEqYC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-zDianfUnyyLEEqYC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-zDianfUnyyLEEqYC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-zDianfUnyyLEEqYC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-zDianfUnyyLEEqYC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-zDianfUnyyLEEqYC .marker.cross{stroke:#333333;}#mermaid-svg-zDianfUnyyLEEqYC svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-zDianfUnyyLEEqYC .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-zDianfUnyyLEEqYC .cluster-label text{fill:#333;}#mermaid-svg-zDianfUnyyLEEqYC .cluster-label span{color:#333;}#mermaid-svg-zDianfUnyyLEEqYC .label text,#mermaid-svg-zDianfUnyyLEEqYC span{fill:#333;color:#333;}#mermaid-svg-zDianfUnyyLEEqYC .node rect,#mermaid-svg-zDianfUnyyLEEqYC .node circle,#mermaid-svg-zDianfUnyyLEEqYC .node ellipse,#mermaid-svg-zDianfUnyyLEEqYC .node polygon,#mermaid-svg-zDianfUnyyLEEqYC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-zDianfUnyyLEEqYC .node .label{text-align:center;}#mermaid-svg-zDianfUnyyLEEqYC .node.clickable{cursor:pointer;}#mermaid-svg-zDianfUnyyLEEqYC .arrowheadPath{fill:#333333;}#mermaid-svg-zDianfUnyyLEEqYC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-zDianfUnyyLEEqYC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-zDianfUnyyLEEqYC .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-zDianfUnyyLEEqYC .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-zDianfUnyyLEEqYC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-zDianfUnyyLEEqYC .cluster text{fill:#333;}#mermaid-svg-zDianfUnyyLEEqYC .cluster span{color:#333;}#mermaid-svg-zDianfUnyyLEEqYC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-zDianfUnyyLEEqYC :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;} 生成Personal Access Token
PAT 复制并妥善保存PAT 使用HTTPS URL克隆仓库
或修改现有仓库远程地址 进行代码修改并提交
git add & git commit 推送提交时使用PAT作为密码 可选: 配置凭证助手缓存PAT


