Win11 配置 Git 绑定 Github 账号的方法与问题汇总
目录
- 一、创建 Github 项目库(远程仓库)
- 二、配置安装好的 Git
- 1. 设置用户信息
- 2. 查看已配置的信息
- 3. 建立本地仓库
- 4. Git 常用命令速查表
- 三、配置 SSH 公钥
- 1. 生成 ssh key
- 出现的问题
- 2. 启动 ssh-agent 并添加秘钥
- 3. 在 Github 上绑定 ssh 公钥
- 出现的问题
- 四、关联本地仓库与 Github 远程仓库
- 1. 查看 Github 项目库地址
- 2. 对接本地仓库与远程仓库
- 1)远程仓库向本地仓库推送(克隆仓库)
- 2)本地仓库向远程仓库推送(上传代码)
- 五、其他
- 1. 注意事项
- 2. 创建 .config 或 .bashrc 后缀文件
- 3. 运行 ssh-add -l 失败
默认已注册了 Github 且安装了 Git 。
一、创建 Github 项目库(远程仓库)
登录已创建好的 Github 账户,点击左上角的三条横杠,进入 Home 界面,如下图所示。然后点击绿色的 “New” 按钮,以创建新的项目库。
对创建的项目内容进行填写,例如:项目名称、项目描述、是否所有人均可查看等。最后点击 “Create repository” 即可创建项目。
完成创建项目库后,就需要让自己的电脑克隆一个刚刚创建的库(本地仓库),以方面自己电脑上的代码同步到在 GitHub 创建的库中,这时就需要用到 Git Bash 软件。
二、配置安装好的 Git
1. 设置用户信息
单击打开 Git Bash ,如下图所示:
输入如下命令验证 Git 是否安装成功,若显示版本号,例如 git version 2.x.x 则表示 Git 安装成功。
git --version
输入如下命令设置 Git 用户信息:
git config --global user.name "[用户名]"
git config --global user.email "[用户邮箱]"
下面的命令可以增强输出命令的可读性:
git config --global color.ui auto
注:这里的用户名最好与 GitHub 上的一致,而用户邮箱一定要是注册 GitHub 的那个邮箱地址。如何查看?在 Github 上登陆自己的账户,点击右上角的头像 → “Settings” ,进入设置界面,在左侧列表中选择 “Emails” ,即可查看用户名与用户邮箱(选择 Primary 的那个)。
2. 查看已配置的信息
输入如下命令查看用户信息:
git config --global user.name
git config --global user.email
或者
git config --list
3. 建立本地仓库
在任意位置创建一个空文件夹作为本地的 Git 仓库,进入该文件夹并右键,选择 “显示更多选项” → “Open Git Bash here” ,如下图所示。
执行以下命令生成 .git 文件。
git init
-
初始化成功则会显示:
Initialized empty Git repository in D:/git_warehouse/.git/
的代码。 -
输入
ll
指令可以查看仓库文件数量及详情,没有文件即显示:total 0
的代码。 -
想在目录下显示 .git 隐藏文件,则点击 “查看” → “显示” → “隐藏的项目” 即可。
以下是 Git 仓库的工作流程图以及基本指令(包括添加到暂存区、提交到本地仓库、查看状态、查看提交日志等)
# 跟踪所有改动过的文件,即将所有修改提交到暂存区
git add .
# 将 README.md 提交到暂存区
git add README.md
# 提交所有更新过的文件至本地仓库,提交注释为:xxx
git commit -m "xxx"
# 以上命令执行完毕时,可以使用以下命令查看仓库文件的状态
git status
# 以上命令执行完毕时,可以查看日志(提交历史)
git log
# 撤销工作目录中所有未提交文件的修改内容,即将版本回退到之前提交的版本
git reset commitID --hard
4. Git 常用命令速查表
参考文章:【Git 常用命令速查表(图文+表格)】
三、配置 SSH 公钥
1. 生成 ssh key
在 Git Bash 界面输入 cd ~/.ssh
或 ls ~/.ssh/id_rsa.pub
命令,若返回 "no such file or directory"
则表明文件不存在,需要创建。输入以下命令创建文件并生成 ssh key :
ssh-keygen -t rsa -C "[用户邮箱]"
连续进行 3 次回车 Enter(确认)即可,然后会在 “C:/Users/[用户名]” 下生成一个 .ssh 文件,里面存储了两个秘钥,id_rsa 文件里存储的是私钥、 id_rsa.pub 文件里存储的是公钥。
用记事本打开 id_rsa.pub 文件,复制里面的内容;或者在 Git Bash 里输入 cat ~/.ssh/id_rsa.pub
命令复制公钥内容。
出现的问题
问题:输入 ssh-keygen -t rsa -C "[用户邮箱]"
出现如下错误:
No such file or directory:没有这样的文件或目录
【问题原因】:本机用户名是中文,由于 Git Bash 的编码设置不支持中文,导致中文乱码,从而生成密钥失败。
【解决方法 1】(失败):修改 Git Bash 编码为 UTF-8 。以下为修改步骤:
-
右键单击 Git Bash 的顶部边框,选择 “Options”
-
在左侧列表选择 “Text” ,将 “Locale” 选为 “zh_CN” ,“Character set” 选为 “UTF-8” ,最后点击 “Save” 即可,如下图所示。
- 重新尝试生成 ssh 密钥。
参考文章:【解决git生成ssh密钥失败问题,本机用户名中文乱码导致密钥生成失败。】
【解决方法 2】(成功):方法 1 并没有解决问题,方法 2 是:通过快捷键 Win+R 打开命令提示符 cmd ,在 cmd 中生成 ssh 密钥,输入命令后连续进行 3 次回车即可。
生成的 id_rsa 和 id_rsa.pub 文件均在 .ssh 文件夹下。
2. 启动 ssh-agent 并添加秘钥
在 Git Bash 里输入如下命令:
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
3. 在 Github 上绑定 ssh 公钥
在 Github 上登陆自己的账户,点击右上角的头像,进入 Settings 界面,在左侧列表中选择 “SSH and GPG keys” ,如下图所示。然后点击右上方的 “New SSH key” 绿色按钮。
在如下所示的界面里填写信息,将公钥(id_rsa.pub)里的内容复制进去,最后点击 “Add SSH key” 即可成功添加。
回到 Git Bash 上验证是否配置成功,输入如下命令:
ssh -T git@github.com
如果出现:You've successfully authenticated, but GitHub does not provide shell access.
则说明绑定成功。若中间出现 (yes/no/[fingerprint]) 时,输入 yes 即可。
出现的问题
问题 1 :输入上述命令出现如下错误:
kex_exchange_identification:读取:软件导致连接中止
横幅交换:连接到 20.205.243.166 端口 22:软件导致连接中止
【解决方法】:Git Bash 下使用 SSH 连接出现 “Software caused connection abort” 问题
问题 2 :报错 "The authenticity of host ‘github.com (20.205.243.166)’ can’t be established. "
【解决方法 1】:遇到 (yes/no/[fingerprint]) 时,直接输入 yes 即可。
【解决方法 2】:手动配置 known_hosts 文件,即在 C:/Users/[用户名]/.ssh 文件夹下新建一个 known_hosts 文件,用记事本打开该文件并写入 Github 的 ssh 密钥条目。
ssh 密钥条目如下所示:
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
参考文章:【The authenticity of host ‘github.com (20.205.243.166)‘ can‘t be established. 报错解决】
四、关联本地仓库与 Github 远程仓库
1. 查看 Github 项目库地址
登陆你的 Github 账户进入项目仓库,如下图所示查看该 Github 项目库的地址(HTTPS or SSH 均可)。
了解两个常用的 Git 命令:push 和 pull 。
-
如果本地仓库的代码有了更新,为了保持本地与远程的代码同步,我们就需要利用
git push origin master
命令把本地的代码 “推给” 远程的仓库。 -
如果远程仓库的代码有了更新,同样为了保持本地与远程的代码同步,我们就需要利用
git pull origin master
命令把远程的代码 “拉到” 本地的仓库。
2. 对接本地仓库与远程仓库
1)远程仓库向本地仓库推送(克隆仓库)
将 Github 上的项目库克隆到本地电脑上,在本地仓库所在的文件夹下右键选择 “Open Git Bash here” 。
进入 Git Bash 后执行克隆命令:git clone <远程仓库地址>
。
如下图所示,指定目录已经存在在本地仓库的文件夹下。
2)本地仓库向远程仓库推送(上传代码)
在本地仓库所在的文件夹下右键选择 “Open Git Bash here” ,进入 Git Bash 后执行绑定命令:git remote add <远程仓库名称> <远程仓库地址>
,执行后就可以开始使用本地仓库向远程仓库推送了,输入 git remote
命令查看远程仓库名称。
打开刚刚克隆下来的 TEST 文件夹,在其中创建一个任意格式、任意名称的文件,例如:我在这里创建了一个名叫 text 的 .txt 文件。
在这个文件夹下右键选择 “Open Git Bash here” ,进入 Git Bash 。
-
执行
git add text.txt
命令将该新文件上传至暂存区。 -
执行
git commit -m “测试是否成功”
命令将所有更新过的文件提交至本地仓库,且提交注释为:“测试是否成功” ,引号内的内容相当于是上传文件的备注,便于查找。
- 接着输入 push 指令
git push -u origin main
,将本地仓库的文件提交至远程仓库,如下图所示就代表上传成功了。
注:红框内是什么,origin 后就跟什么。
打开 GitHub ,可以看到刚刚上传的文件。
注意:
git push origin master
和 git push -u origin master
的区别主要在于是否设置了上游分支(upstream branch)。
-
git push origin master :
-
仅把本地的 master 分支推送到远端的 origin 仓库对应的 master 分支。
-
不设置上游分支,也就是说,以后如果直接运行 git push 或 git pull,Git 不知道默认跟踪哪个远端分支,可能会提示你指定分支。
-
-
git push -u origin master :
-
除了推送 master 分支到远端 origin 仓库外,还会把本地 master 分支和远端 origin/master 关联起来,设置本地 master 的上游分支为 origin/master 。
-
以后可以仅用 git push 或 git pull,Git 会自动推送或拉取相对应的远端分支。
-
总结:
命令 | 作用 |
---|---|
git push origin master | 推送本地 master 到 origin/master,但不设置上游分支 |
git push -u origin master | 推送并设置本地 master 跟踪 origin/master,上下游分支关联 |
如果是第一次推送某个新的本地分支,建议使用 -u 参数,这样以后操作更方便。
五、其他
1. 注意事项
-
Windows Terminal 默认使用 PowerShell 或 cmd ,也可以安装并开启 Git Bash 终端更方便使用 Git 。
-
如果想使用 HTTPS 而不是 SSH ,推送时会要求输入 GitHub 账号密码,GitHub 目前使用 Token 代替密码,需要额外配置。
2. 创建 .config 或 .bashrc 后缀文件
-
在想要创建文件的文件夹下右击鼠标,新建一个 .txt 记事本,名字可以任意取。
-
打开新建的 .txt 文本,将想要输入的内容粘贴进文本内。
-
点击记事本左上角的 “文件” ,选择 “另存为” ,然后进行如下图所示的操作。
注:重命名文件时,一定要带 .config 或 .bashrc 后缀,或者直接输入 .config 或 .bashrc 也行。
- 此时,该文件夹下就出现了 CONFIG 文件或 Bash RC 源文件,将之前的 .txt 文本删除即可。
3. 运行 ssh-add -l 失败
【问题】:在 Git Bash 中输入 ssh-add -l
但收到 Could not open a connection to your authentication agent
的错误。
【原因】:这通常表明 SSH 代理没有运行或没有正确地被初始化。
【方法】:
- 启动 SSH 代理:在 Git Bash 上运行
eval $(ssh-agent -s)
命令启动 SSH 代理,这将返回一个类似于 “Agent pid xxx” 的消息,表示 SSH 代理正在运行。
确保在每次打开 Git Bash 时启动 ssh-agent :将以下指令添加到你的 ~/.bashrc 文件中,然后运行
source ~/.bashrc
指令重新加载配置文件。
if [ -f ~/.bash_profile ]; then . ~/.bash_profile
fi# Start SSH agent
eval $(ssh-agent -s)
-
添加 SSH 密钥:在 Git Bash 上运行
ssh-add ~/.ssh/id_rsa
命令将你的 SSH 密钥添加到代理中。
注:需要根据你的密钥所处路径以及密钥文件名对上述命令做相应调整。 -
验证 SSH 密钥:在添加密钥后,可以再次使用
ssh-add -l
验证是否成功添加,如果成功,会看到已添加的密钥列表,类似于 “xxx SHA256:… [你的邮箱] (RSA)” 。
参考文章:
【Github入门教程,适合新手学习(非常详细)】
【Git的配置、本地绑定Github及基本使用】
【git与github账号绑定】
【将Git与Github进行SSH连接】