git-- github的使用--账户和本地连接

以下指令在git 执行bash

流程:先看有没有密钥;

没有的话,在电脑生成密钥对,公钥复制到github;

要想使用https,配置令牌,注意令牌有期限问题,连接不了有可能是期限问题

一个电脑对应多个账户,没有完全搞好,现在可以使用ssh,要注意后面的账号,要把ssh链接修改名字才能用。咱家先不搞了。

在 GitHub 上使用密钥和令牌时,通常有两种常见的认证方式:SSH 密钥个人访问令牌(Personal Access Token, PAT)。这两种方式可以帮助你在操作 GitHub 仓库时进行身份验证。

1. 使用 SSH 密钥进行认证,用于ssh地址链接

使用 SSH 密钥时,你不需要每次推送或拉取时输入 GitHub 密码,而是使用密钥对进行身份验证。

步骤 1: 生成 SSH 密钥
  1. 打开终端(或 Git Bash)。

  2. 生成 SSH 密钥对(公钥和私钥同事生成):

    ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
    

    这个命令会生成一个 4096 位的 RSA 密钥对,并将它与你的 GitHub 账户相关联。

  3. 在提示时,你可以按 Enter 键接受默认存储路径(通常是 ~/.ssh/id_rsa),或者输入自定义路径。

  4. 设置一个密码短语(可以留空,也可以设置一个密码)。

步骤 2: 添加 SSH 公钥到 GitHub
  1. 在终端中查看生成的公钥:

    cat ~/.ssh/id_rsa.pub
    

    复制输出的公钥。

  2. 登录到 GitHub 网站。

  3. 在右上角点击你的头像,选择 Settings

  4. 在左侧菜单中选择 SSH and GPG keys

  5. 点击 New SSH key,在 Title 中输入一个名称,然后粘贴刚刚复制的公钥到 Key 字段。

  6. 点击 Add SSH key,完成 SSH 密钥的添加。

步骤 3: 使用 SSH 克隆仓库
  1. 在 GitHub 仓库页面,点击 Code 按钮,选择 SSH 选项,复制 SSH 地址。

  2. 在终端中使用 git clone 命令:

    git clone git@github.com:username/repository.git
    

2. 使用个人访问令牌(Personal Access Token,PAT),用于https地址链接

GitHub 不再支持用密码进行 Git 操作,必须使用个人访问令牌进行身份验证。

步骤 1: 创建个人访问令牌
  1. 登录到 GitHub,点击右上角头像,选择 Settings

  2. 在左侧菜单中选择 Developer settings,然后选择 Personal access tokens

  3. 点击 Generate new token

  4. Note 字段中输入令牌的说明(例如:Git操作)。

  5. 选择需要的权限,例如:

    • repo(完全访问私有仓库)。

    • workflow(访问 GitHub Actions 工作流)。

    • admin:repo_hook(管理仓库 Webhooks 等)。

  6. 点击 Generate token

  7. 复制生成的令牌 (IMPORTANT: You won't be able to see this token again)

步骤 2: 使用令牌进行认证

当你在 GitHub 上进行操作时(例如推送或拉取),会要求输入 GitHub 的用户名和密码:

  • 用户名:输入你的 GitHub 用户名。

  • 密码:输入你刚刚生成的 Personal Access Token

3. 配置 Git 使用个人访问令牌

在使用 HTTPS 克隆仓库时,你可以将个人访问令牌用作密码,避免每次操作时输入密码。

  1. 克隆仓库时使用 HTTPS 地址:

    git clone https://github.com/username/repository.git
    
  2. 输入你的 GitHub 用户名。

  3. 当提示输入密码时,粘贴你的个人访问令牌作为密码。

一般选择tokens(classic),要勾选,repo权限。

Github 令牌(Personal access tokens )申请及使用-CSDN博客

总结

  • SSH 密钥:适合经常进行 Git 操作的用户,配置后不需要每次输入密码。

  • 个人访问令牌(PAT):适合使用 HTTPS 克隆仓库的用户,令牌代替密码进行身份验证。

无论哪种方式,你都可以简化 Git 操作并确保更高的安全性。如果有更多问题,欢迎随时提问!

一个设备配置了两个ssh,

要注意区分host,就是有一个不能直接使用ssh链接,修改成定义的名字有点麻烦,后续找找其他方式。

根据你的 `~/.ssh/config` 配置,你正在尝试同时管理 **两个 GitHub 账户**(一个默认账户和一个新账户 `jack`)。以下是关键解答和优化建议:

---

### **1. 当前配置的问题**
你的配置中:
```config
# 默认账户(11的账户)
Host github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id_rsa

# 新账户(22的账户)
Host github-new
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_newgithub
```
- **冲突点**:两个配置都试图关联到 `github.com`,但第二个配置通过别名 `github-new` 规避了冲突。
- **结果**:
  - `git@github.com:...` → 使用 `~/.ssh/github_id_rsa`(22的账户)
  - `git@github-new:...` → 使用 `~/.ssh/id_rsa_newgithub`(jack的账户)

---

### **2. 能否同时使用 `github.com`?**
**可以,但需明确区分场景**:
1. **默认账户(22的账户)**:
   - 直接使用标准 URL:
     ```bash
     git clone git@github.com:user/repo.git
     ```
   - 会自动使用 `~/.ssh/github_id_rsa` 密钥。

2. **新账户(22的账户)**:
   - 必须使用自定义别名 `github-new`:
     ```bash
     git clone git@github-new:user/repo.git
     ```
   - 会自动使用 `~/.ssh/id_rsa_newgithub` 密钥。

---

### **3. 关键注意事项**
#### **(1) 确保密钥已正确添加到 GitHub**
- 分别将两个公钥添加到对应的 GitHub 账户:
  - `~/.ssh/github_id_rsa.pub` → 11的账户的 **SSH Keys**
  - `~/.ssh/id_rsa_newgithub.pub` → 22的账户的 **SSH Keys**

#### **(2) 测试连接**
- 测试默认账户:
  ```bash
  ssh -T git@github.com
  ```
  应返回:
  ```
  Hi 11! You've successfully authenticated...
  ```

- 测试新账户:
  ```bash
  ssh -T git@github-new
  ```
  应返回:
  ```
  Hi 22! You've successfully authenticated...
  ```

#### **(3) 避免混淆**
- **不要**在同一个仓库中混合使用两个账户的密钥(会导致权限错误)。
- 克隆或操作仓库时,严格按需选择:
  - 11的仓库 → `git@github.com:...`
  - 22的仓库 → `git@github-new:...`

---

### **4. 优化配置建议**
如果希望更清晰地管理多账户,可以统一使用自定义别名(避免直接使用 `github.com`):
```config
# 22的账户
Host github-22
    HostName github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

# jack的账户
Host github-jack
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_newgithub
```
- 使用时:
  ```bash
  git clone git@github.com:11/repo.git    # 11的账户
  git clone git@github-new:22/repo.git  # 22的账户
  ```
- **优点**:完全隔离,避免误操作。

---

### **5. 常见问题解决**
#### **Q: 为什么 `git@github.com` 仍使用错误的密钥?**
- 检查默认密钥是否被缓存:
  ```bash
  ssh-add -l
  ```
- 清除缓存:
  ```bash
  ssh-add -D
  ```

#### **Q: 如何强制指定密钥?**
临时覆盖密钥:
```bash
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_newgithub" git clone git@github.com:user/repo.git
```

---

### **总结**
- **可以同时使用**,但需通过不同 Host 别名区分账户。
- **最佳实践**:为每个账户配置独立的别名(如 `github-11` 和 `github-22`),避免直接修改 `github.com` 的默认行为。
- **验证步骤**:务必测试 `ssh -T git@别名` 确认认证成功。

资料:

Git 、Git Bash、GitHub、Bash、Shell之间的关系与区别_git和gitbash区别-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OTN(Optical Transport Network)详解

OTN(光传送网)是一种基于**波分复用(WDM)**的大容量光传输技术,结合了SDH的运维管理优势和WDM的高带宽特性,广泛应用于骨干网、城域核心层及数据中心互联(DCI)。 1. OTN 的基本概念 …

Python 中列表(List)、元组(Tuple)、集合(Set)和字典(Dict)四大数据结构的完整对比

以下是 Python 中列表(List)、元组(Tuple)、集合(Set)和字典(Dict)四大数据结构的完整对比分析,结合了核心特性、操作方式和应用场景的深度总结: 一、核心特性…

Angular由一个bug说起之十五:自定义基于Overlay的Tooltip

背景 工具提示(tooltip)是一个常见的 UI 组件,用于在用户与页面元素交互时提供额外的信息。由于angular/material/tooltip的matTooltip只能显示纯文本,所以我们可以通过自定义Directive来实现一个灵活且功能丰富的tooltip Overlay…

软件工程面试题(十五)

1、servlet 创建过程以及ruquest,response,session的生命周期? Servlet的创建过程: 第一步 public class AAA extends HttpServlet{ 实现对应的doxxx方法 } 第二步: 在web.xml中配置 <servlet> <servlet-name></servlet-name> <servlet-c…

搭建QNX Software Center的Docker环境

背景 本人使用 Ubuntu Server 22.04 服务器&#xff0c;所以没有图形界面&#xff0c;而 QNX Software Center 需要图形界面。为了保证服务器环境的整理&#xff0c;计划使用Docker部署QNX Software Center 一瓶安装图形界面。本方既是实现方案的记录。 资源 Dockerfile&…

C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)

前言 C#/.NET/.NET Core技术前沿周刊&#xff0c;你的每周技术指南针&#xff01;记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿&#xff0c;助力技术成长与视野拓宽。 欢迎投稿、推荐…

粘包问题解决方案

粘包问题详解&#xff1a;TCP协议中的常见问题及Go语言解决方案 一、什么是粘包问题&#xff1f; 粘包问题是指在TCP通信中&#xff0c;发送方发送的多个独立消息在接收方被合并成一个消息接收的现象。换句话说&#xff0c;发送方发送的多条消息在接收方被“粘”在一起&#…

vue:突然发现onok无法使用

const that this;this.$confirm({title: "修改商品提示",content: "如果当前商品存在于商品活动库&#xff0c;则在商品活动库的状态会下架",onOk: function () {that.submitForm();}}); 突然发现 this.$confirm无法进入onok 最终发现是主题冲突&#x…

redis hashtable 的sizemask理解

在 Redis 的哈希表实现中&#xff0c;index hash & dict->ht[0].sizemask 是计算键值对应存储位置的核心操作。这个操作看起来简单&#xff0c;但背后涉及哈希表的内存布局和性能优化策略。我们通过以下步骤逐步解析其原理&#xff1a; 一、哈希表的设计目标 快速定位…

Ruby 命令行选项

Ruby 命令行选项 概述 Ruby 是一种广泛使用的编程语言,它拥有强大的命令行工具,可以帮助开发者进行各种任务。了解 Ruby 的命令行选项对于提高开发效率至关重要。本文将详细介绍 Ruby 的常用命令行选项,帮助开发者更好地利用 Ruby 的命令行功能。 Ruby 命令行选项概述 R…

【STM32】WDG看门狗(学习笔记)

学习来源----->江协科技STM32 WDG简介 WDG&#xff08;Watchdog&#xff09;看门狗看门狗可以监控程序的运行状态&#xff0c;当程序因为设计漏洞、硬件故障、电磁干扰等原因&#xff0c;出现卡死或跑飞现象时&#xff0c;看门狗能及时复位程序&#xff0c;避免程序陷入长…

Java 数据库连接池

HikariCP 老外开源的。 Spring Boot 2 之后默认选择的连接池。 号称性能最快的数据库连接池。 为什么性能好呢&#xff1f; ● 字节码级别的优化-尽量的利用 JIT 的内联手段 ● 字节码级别的优化-利用更容易被 JVM 优化的指令 ● 代码级别的优化-利用改造后的 FastList 代替…

Spring Boot中@Valid 与 @Validated 注解的详解

Spring Boot中Valid 与 Validated 注解的详解 引言Valid注解功能介绍使用场景代码样例 Validated注解功能介绍使用场景代码样例 Valid与Validated的区别结论 引言 在Spring Boot应用中&#xff0c;参数校验是确保数据完整性和一致性的重要手段。Valid和Validated注解是Spring …

C++搜索

功能扩展说明&#xff1a; 图类封装&#xff1a;将图数据结构封装为类&#xff0c;提高代码复用性 最短路径查找&#xff1a;基于BFS实现未加权图的最短路径查找 路径重构&#xff1a;通过parent数组回溯构建完整路径 异常处理&#xff1a;当路径不存在时返回空向量 复杂度分析…

2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题题解)(C++/Java题解)

本来想刷省赛题呢&#xff0c;结果一不小心刷成国赛了 真是个小迷糊〒▽〒 但&#xff0c;又如何( •̀ ω •́ )✧ 记录刷题的过程、感悟、题解。 希望能帮到&#xff0c;那些与我一同前行的&#xff0c;来自远方的朋友&#x1f609; 大纲&#xff1a; 一、子2023-&#xff…

CSS学习笔记6——网页布局

目录 一、元素的浮动属性、清除浮动 清除浮动的其他方法 1、使用空标签清除浮动影响 2、使用overflow属性清除浮动 3、使用伪元素清除浮动影响 原理 overflow属性 二、元素的定位 1、相对定位 2、绝对定位 ​编辑 3、固定定位 z-index层叠等级属性 一、元素的浮动…

sqlalchemy:将mysql切换到OpenGauss

说明 之前python的项目使用的mysql&#xff0c;近期要切换到国产数据库OpenGauss。 之前的方案是fastapisqlalchemy&#xff0c;测试下来发现不用改代码&#xff0c;只要改下配置即可。 切换方案 安装openGauss-connector-python-psycopg2 其代码工程在&#xff1a;https:…

uniapp 获取dom信息(封装获取元素信息工具函数)

在uniapp开发中&#xff0c;需要获取到dom的信息&#xff0c;需要用到uniapp的指定方式 uni.createSelectorQuery()&#xff0c;但是每次需要用到的时候都需要很长一段的繁琐代码&#xff0c;本篇文章将呈现获取dom信息方法封装&#xff0c;话不多说&#xff0c;上菜&#xff1…

Linux之数据链路层

Linux之数据链路层 一.以太网1.1以太网帧格式1.2MAC地址1.3MTU 二.ARP协议2.1ARP协议工作流程2.2ARP协议格式 三.NAT技术四.代理服务4.1正向代理4.2反向代理 五.四大层的学习总结 一.以太网 在我们学习完了网络层后我们接下来就要进入数据链路层的学习了&#xff0c;在学习完网…

MySQL的基础语法2(函数-字符串函数、数值函数、日期函数和流程函数 )

目录 一、字符串函数 1.常见字符串函数 ​编辑 2.字符串函数的基本使用 3.字符串函数的数据库案例演示 二、数值函数 1.常见数值函数&#xff08;如下&#xff09;&#xff1a; 2.数值函数的基本使用 3.数值函数的数据库案例演示 三、日期函数 1.常见的日期函数 2.日…