SSH 密钥连接到 GitHub

SSH 密钥连接到 GitHub

使用 SSH 密钥连接到 GitHub 可以简化身份验证过程,避免每次提交代码时输入用户名和密码。

[!NOTE] todo!
文章指令有误!待后续更新

SSH 密钥连接 GitHub 示意图

以下是具体操作步骤:

1. 步骤一:检查是否已有 SSH 密钥

  1. 打开终端(Terminal)或 Git Bash。
  2. 输入以下命令查看是否已有 SSH 密钥:

1.1 Windows

Get-ChildItem -Force -Path $HOME\.ssh

1.2 Linux

ls -al ~/.ssh

如果看到 id_rsa 和 id_rsa.pub 文件,说明已有 SSH 密钥,可以跳过生成密钥的步骤。

2. 步骤二:生成新的 SSH 密钥

  1. 在终端或 Git Bash 中输入以下命令生成新的 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "[email protected]"

请将 [email protected] 替换为你的 GitHub 绑定的邮箱地址。

ssh-keygen -t rsa -b 4096 -C "[email protected]"
  1. 当提示输入保存密钥的文件路径时,按回车键使用默认路径(通常为 ~/.ssh/id_rsa)。

  2. 当提示输入密码时,可以选择设置密码或直接按回车键跳过(不设置密码)。

3. 步骤三:将 SSH 密钥添加到 SSH Agent

3.1 启动 SSH Agent

eval "$(ssh-agent -s)"

3.2 将生成的 SSH 私钥添加到 SSH Agent

ssh-add ~/.ssh/id_rsa

4. 步骤四:将 SSH 公钥添加到 GitHub 账户

  1. 复制 SSH 公钥到剪贴板:
cat ~/.ssh/id_rsa.pub

复制输出的内容。

  1. 登录 GitHub 账户,点击右上角的头像,选择「Settings」(设置)。

  2. 在左侧导航栏中选择「SSH and GPG keys」。

  3. 点击「New SSH key」,在「Title」字段中输入一个描述性的名称,在「Key」字段中粘贴刚才复制的公钥,然后点击「Add SSH key」。

5. 步骤五:测试 SSH 连接

  1. 在终端或 Git Bash 中输入以下命令测试连接:
ssh -T [email protected]
  1. 如果看到类似以下的提示,说明连接成功:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

通过以上步骤,你已经成功配置了使用 SSH 密钥连接到 GitHub。以后在进行代码提交时,无需再输入用户名和密码。

6. Git 配置失败:无法获取远程 HEAD 引用

这些问题可能是由于以下原因造成的:
1- Git 可能没有正确安装或配置。
2- 当前仓库可能没有正确设置远程源。

7. 解决方案

7.1 确保 Git 正确安装

7.2 打开 PowerShell 并运行

git --version

确认 Git 已安装。

7.3 如果未安装,请从官方网站下载并安装 Git

7.4 检查 Git 全局配置

运行以下命令设置您的用户名和邮箱(如果尚未设置):

git config --global user.name "baoyu0"
git config --global user.email "[email protected]"

7.5 检查仓库的远程源设置

  • 进入您的 Git 仓库目录。
  • 运行
git remote -v 
  • 查看远程源配置。
  • 如果没有远程源,或配置不正确,使用以下命令添加:
git remote add origin https://github.com/baoyu0/PowerShell.git

7.6 设置默认分支

如果远程 HEAD 引用不存在,可以手动设置:

git remote set-head origin -a

7.7 拉取最新更改

git fetch origin
git pull origin main  # 或您的主分支名称

7.8 如果问题仍然存在,尝试重新克隆仓库

cd ..
rm -rf your-repo-folder
git clone https://github.com/username/repository.git

这些步骤应该能解决您遇到的 Git 问题。如果还有其他问题,请提供更多详细信息,我会很乐意进一步协助您。

8. 在 VSCode 中使用 Git 管理本地库并推送到 GitHub 的操作步骤

8.1 步骤一:回退到指定版本

首先,你需要回退到你希望的版本(假设是版本a)。你可以使用以下命令:

git reset --hard <commit_id>

其中,<commit_id>是你希望回退到的版本的提交 ID。你可以通过git log命令查看提交历史并找到对应的提交 ID。

8.2 步骤二:强制推送到远程仓库

回退到指定版本后,你需要将本地的更改强制推送到 GitHub,以覆盖远程仓库的错误代码。使用以下命令:

git push --force origin <branch_name>

其中,<branch_name>是你要推送的分支名称,例如master或main。

8.3 步骤三:在 VSCode 中同步更改

在 VSCode 中,你可能会看到「同步更改」的提示,这是因为本地和远程仓库的状态不一致。为了确保你的本地更改覆盖远程仓库,你可以执行以下操作:

  1. 打开 VSCode 的终端(可以通过快捷键 Ctrl + 打开)。
  2. 执行以下命令以确保本地仓库的状态与远程仓库一致:
git fetch origin
git reset --hard origin/<branch_name>
  1. 再次强制推送本地更改到远程仓库:
git push --force origin <branch_name>

通过这些步骤,你可以确保本地的正确版本覆盖远程仓库的错误代码,并解决 VSCode 中「同步更改」的提示问题。

8.4 注意事项

  • 强制推送:使用--force选项时要非常小心,因为它会覆盖远程仓库的历史记录,可能会影响其他开发者的工作。
  • 备份:在执行这些操作之前,建议备份当前的工作目录,以防止数据丢失。

通过以上步骤,你应该能够成功回退到指定版本并覆盖远程仓库的错误代码。