Git 基本知识
安装 Git§
若要在命令行上使用 Git, 需要在计算机上安装、安装和设置 Git。 下载并安装最新版本的 Git
Warning
从 2020 年开始大部分 Chrome OS 设备都内置 Git。 如果需要启用可以去 Launcher 搜索 Linux 并打开。
如果你使用较早版本的 Chrome OS 设备, 则需要使用 其他方法 :
-
在 Chrome OS 设备上安装终端模拟器, 例如 Google Play 商店中的 Termux。
-
从您安装的终端模拟器安装 Git。 例如, 在 Termux 中, 输入
pkg install git并在出现提示时键入 y。
速查表§
-
切换分支
-
创建并切换到新分支
-
列出分支
-
按最近提交时间排序列出分支
-
删除分支
-
强制删除分支
v2.23 后新增了 switch 和restore 命令, 用于拆解原来多功能命令 checkout。以前的 checkout 同时在做切换分支、创建分支、恢复文件三件事, 现在 switch 用于切换分支、创建分支, restore 用于恢复文件 -
合并分支
--- config: themeVariables: 'git0': '#FFCB5E' 'git1': '#77A3FF' --- gitGraph commit id: "A" commit id: "B" branch banana commit id: "D" commit id: "E" checkout main commit id: "C" merge banana -
与
rebase结合使用--- config: themeVariables: 'git0': '#FFCB5E' 'git1': '#ffb2b2ff' 'git2': '#77A3FF' --- gitGraph commit id: "A" commit id: "B" branch lost commit id: "D" type: REVERSE commit id: "E" type: REVERSE checkout main commit id: "C" branch banana checkout banana commit id: "D'" commit id: "E'" -
与
squashmerge 合并--- config: themeVariables: 'git0': '#FFCB5E' 'git1': '#77A3FF' --- gitGraph commit id: "A" commit id: "B" branch banana commit id: "D" commit id: "E" checkout main commit id: "D E" -
将一个提交复制到当前分支
--- config: themeVariables: 'git0': '#FFCB5E' 'git1': '#77A3FF' --- gitGraph commit id: "A" commit id: "B" branch banana commit id: "D" commit id: "E" checkout main commit id: "C" commit id: "D'" -
交互式变基
--- config: themeVariables: 'git0': '#FFCB5E' 'git1': '#77A3FF' --- gitGraph commit id: "A" commit id: "B" commit id: "C" type: REVERSE commit id: "D" type: REVERSE commit id: "E" type: REVERSE commit id: "C'" commit id: "DE'"
在 GitHub 验证身份§
-
从 Git 连接到 GitHub 仓库时需要进行身份验证。首先检查是否已有 SSH 密钥, 如果有
id_*.pub的文件, 则说明已有 SSH 密钥。 -
如果没有就要 生成 SSH 密钥 , 使用
ssh-keygen命令, 使用参数-t选择加密算法之后按照提示操作即可。- Git 的邮箱, 比如
"itsWanr@outlook.com"
推荐的算法类型
算法用途 算法名称 特点 常见应用场景 推荐程度 非对称加密 RSA应用最广、成熟稳定 密钥认证 ⭐⭐⭐ ECDSA密钥短、效率高 密钥认证 ⭐⭐⭐⭐ Ed25519速度快、安全性最高 密钥认证 ⭐⭐⭐⭐⭐ 数据加密 AES-128/192/256速度快、安全性高 数据传输加密 ⭐⭐⭐ ChaCha20-Poly1305移动设备性能优秀 数据传输加密 ⭐⭐⭐⭐⭐ 密钥交换 ECDH椭圆曲线 DH 会话密钥协商 ⭐⭐⭐ Curve25519现代高效算法 会话密钥协商 ⭐⭐⭐⭐⭐ 消息认证 UMAC速度更快 数据完整性验证 ⭐⭐ Poly1305与 ChaCha20 配合 数据完整性验证 ⭐⭐⭐ HMAC-SHA2-256安全性好 数据完整性验证 ⭐⭐⭐⭐ HMAC-SHA2-512更高安全性 数据完整性验证 ⭐⭐⭐⭐⭐ - Git 的邮箱, 比如
-
查看并复制生成好的 SSH 密钥。
-
将 SSH 密钥添加到 GitHub, 进入 Add new SSH Key 页面, Title 对应密钥名称, Key type 保持默认的认证加密, Key 就是对应密钥
-
当密钥添加到 GitHub 且本地已经配置用户名和电子邮箱的完成后,就可以检测本地和 GitHub 的连接状态了
-
这期间可能存在会有问题, 特别是用了代理的玩家, 可能会出现 远程主机已关闭连接 的报错
原问题内容
-
ssh_exchange_identification: Connection closed by remote host
-
Connection closed by x.x.x.x port 22
这两种情况通常都是由于 ssh 的端口是 22, 开启代理之后 SSH 的连接被代理阻塞, 但是可以通过更改 SSH 设置文件, 将 GitHub 的 SSH 连接端口从 22 改为 443。
-