################### Git 配置手册 ################### SSH 配置 ========= .. note:: SSH 配置的优点是当你进行推送拉取操作时,Git 将会使用你之前配置的 SSH 密钥进行身份验证,而无需再次输入密码。 生成 SSH 密钥 ------------- 进入命令行运行以下命令 .. code-block:: bash 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``,可以直接按回车键使用默认路径和文件名。 查看公钥 -------- 打开命令行终端,并输入以下命令来查看公钥内容 .. code-block:: bash cat ~/.ssh/id_rsa.pub 添加公钥到代码托管平台 ---------------------- 然后进行以下操作: 1. 将显示的公钥内容复制到剪贴板。 2. 打开 Gitee/GitHub 上的账户页面,进入 SSH 密钥的设置页面。 3. 在页面上点击 "Add SSH Key" 或类似的按钮,并将刚才复制的公钥粘贴到相应的输入框中。 4. 保存设置,服务器就会将你的公钥添加到授权列表中。 配置 Git 使用 SSH ----------------- 接下来,打开命令行终端,并使用以下命令来配置 Git 使用 SSH 密钥 .. code-block:: bash 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 即可 .. code-block:: bash 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 下载慢,可以给它单独设置代理 .. code-block:: bash # 设置全局代理,对本地每个 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 查看代理 -------- 列出所有代理 .. code-block:: bash git config --global --list | Select-String proxy 删除代理 -------- .. code-block:: bash git config --global --unset http.https://github.com.proxy 远程分支误命名怎么办? ====================== 查看远程仓库信息 ---------------- .. code-block:: bash # 查看确认远程仓库的完整信息 [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) 重命名远程仓库 -------------- .. code-block:: bash # 重命名 [root@VM-0-14-opencloudos soul-nav]# git remote rename "orignal/main" origin Renaming remote references: 100% (1/1), done. 设置上游分支 ------------ .. code-block:: bash # 配置本地 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'. 验证配置 -------- .. code-block:: bash # 正确的配置 [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)