Git 配置手册¶
SSH 配置¶
Note
SSH 配置的优点是当你进行推送拉取操作时,Git 将会使用你之前配置的 SSH 密钥进行身份验证,而无需再次输入密码。
生成 SSH 密钥¶
进入命令行运行以下命令
ssh-keygen -t rsa -b 4096 -C "zhangsna@163.com"
参数说明:
ssh-keygen:这是命令的名称,用于生成 SSH 密钥。-t rsa:指定密钥类型为 RSA。RSA 是一种非对称加密算法,常用于 SSH 密钥认证。-b 4096:指定密钥的位数。这里的 4096 表示生成的 RSA 密钥的长度为 4096 位。通常来说,密钥长度越长,安全性越高。-C "zhangsna@163.com":这是注释信息,用于描述密钥。在生成密钥对时,这个注释会被添加到公钥文件中。这里"zhangsna@163.com"表示密钥属于邮箱为zhangsna@163.com的用户。
随后系统会提示你输入密钥文件的保存路径,默认情况下会生成在用户目录的 .ssh 子目录下,文件名为 id_rsa 和 id_rsa.pub,可以直接按回车键使用默认路径和文件名。
查看公钥¶
打开命令行终端,并输入以下命令来查看公钥内容
cat ~/.ssh/id_rsa.pub
添加公钥到代码托管平台¶
然后进行以下操作:
将显示的公钥内容复制到剪贴板。
打开 Gitee/GitHub 上的账户页面,进入 SSH 密钥的设置页面。
在页面上点击 “Add SSH Key” 或类似的按钮,并将刚才复制的公钥粘贴到相应的输入框中。
保存设置,服务器就会将你的公钥添加到授权列表中。
配置 Git 使用 SSH¶
接下来,打开命令行终端,并使用以下命令来配置 Git 使用 SSH 密钥
git config --global user.email "your_email@example.com"
git config --global user.name "Your Name"
git config --global core.sshCommand "ssh -i ~/.ssh/id_rsa"
首次连接确认¶
最后,第一次 clone 会让你输入以下内容,输入 yes 即可
Cloning into 'c_tutorial'...
The authenticity of host 'gitee.com (180.76.198.225)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Please type 'yes', 'no' or the fingerprint: yes
代理配置¶
GitHub 下载慢,可以给它单独设置代理
# 设置全局代理,对本地每个 GitHub 仓库都会生效
git config --global http.https://github.com.proxy http://127.0.0.1:7897
# 设置当前仓库的代理,只会对当前的 GitHub 仓库生效
git config --local http.https://github.com.proxy http://127.0.0.1:7897
查看代理¶
列出所有代理
git config --global --list | Select-String proxy
删除代理¶
git config --global --unset http.https://github.com.proxy
远程分支误命名怎么办?¶
查看远程仓库信息¶
# 查看确认远程仓库的完整信息
[root@VM-0-14-opencloudos soul-nav]# git remote -v
orignal/main git@github.com:leeyorke/soul-nav.git (fetch)
orignal/main git@github.com:leeyorke/soul-nav.git (push)
重命名远程仓库¶
# 重命名
[root@VM-0-14-opencloudos soul-nav]# git remote rename "orignal/main" origin
Renaming remote references: 100% (1/1), done.
设置上游分支¶
# 配置本地 master 分支跟踪远程 origin/master
[root@VM-0-14-opencloudos soul-nav]# git branch --set-upstream-to=origin/master master
branch 'master' set up to track 'origin/master'.
验证配置¶
# 正确的配置
[root@VM-0-14-opencloudos soul-nav]# git remote -v
origin git@github.com:leeyorke/soul-nav.git (fetch)
origin git@github.com:leeyorke/soul-nav.git (push)