摘要
- 硬件环境:无特殊要求
- 软件环境 :windows
- 讲解了如何将本地项目同步或源码库同步到GitHub上。
- 【点击此处查看 Git 的安装教程】
- 在 MIniTTY 终端中
【 按 上下键 可以 翻阅 历史命令】
【 按 Home 和 End 可以快速切换到 行首 和 行尾】
【Delete 可以删除 后一个 字符】
【配置 Git】
优先级:
--local > --global > --system
用了--global
这个参数,表示你这台机器上所有的Git仓库都会使用这个配置 ?_?
配置用户名和邮箱
- 查询和设置用户名和邮箱:
git config -l # 查看配置
git config --list # 作用相同
git config --global user.name # 查看用户名
git config --global user.email # 查看邮箱
git config --global user.name 用户名 # 修改用户名
git config --global user.email 邮箱 # 修改邮箱
- 查看配置详情
【help.format=html】帮助文档采用 html 文档
【core.editor=“URL” --wait】内核编辑器的位置,我采用的 VS code,安装在图中路径。
还未配置,所有图中并没有用户名和邮箱的配置说明
- 查看和设置用户名和邮箱
4. 再次查看配置详情
显示了用户名和邮箱,说明配置成功。
【设置【SSH Key】加密传输】
目的
管理项目的时候,直接使用https url克隆到本地(对初学者来说会比较方便),还是使用 SSH url
克隆到本地(需要在克隆之前先配置和添加好 SSH key),因此,如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者。否则你是无法添加 SSH key 的。
https 和 SSH 的区别
- 前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
- https url 在 push(本地传到GitHub) 的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
Git 操作
许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。
- 检查是否已经生成密钥:
cd ~/.ssh
【cd ~/.ssh
】就是查看Home目录(Windows是Administrator目录)下有没有 .ssh 隐藏文件夹
没有生成如图:
- 执行如下指令生成密钥(公有/私有 密钥对):
ssh-keygen -t rsa -C "邮箱"
【ssh-keygen -t rsa -C "邮箱"
】
【ssh-keygen
】是命令标识符;
【-t rsa
】密钥类型用 -t 选项指定,没有指定默认生成用于SSH-2的RSA密钥。这里使用的是rsa(密钥开头的格式 看图);
【-C "注释字段,随意填写说明信息"
】注释字段,用-C来指定注释,方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。
【-f 文件名
】指定密钥文件存储文件名,可省。
- 如上图【操作】:
- 【Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):】 输入保存密钥的文件名,默认id_rsa(推荐)
- 【Enter passphrase (empty for no passphrase):】接着会让输入2次密码(passphrase),空表示没有密码。该密码是你【push】文件的时候要输入的密码,而不是github管理者的密码;3次回车即可完成当前步骤。
- (我的【push】密码: 喜欢南,做个备忘);
- 注意:输入密码的时候没得任何提示,但实际你已经输入了。【切记】
- 密码的作用,下次使用密钥的时候需要输入密码;
- 【.ssh】隐藏文件夹下生成了两个文件:【id_rsa】和【id_rsa.pub】
- 存放于【C:\Users\Administrator.ssh】隐藏文件夹下
- 【Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.】
【Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.】
【id_rsa】猜测是私有密钥,【id_rsa.pub】是公有密钥。 - 【The key fingerprint is:
SHA256:1xJagBF6mxd5ow3poBO2tgQs+bmaXYKOTVZf7UfNogQ 2116447359@qq.com】
不懂(?_?) - 还有一个图,不懂(?_?)
14. 查看密钥:
cat ~/.ssh/id_rsa # 查看私钥
cat ~/.ssh/id_rsa.pub # 查看公钥
- 现在,进行了上述操作的用户需要将各自的公钥发送给任意一个 Git 服务器管理员(假设服务器正在使用基于公钥的 SSH 验证设置)。 他们所要做的就是复制各自的 .pub 文件内容,并将其通过邮件发送。
公钥看起来是这样的:
16. 关于在多种操作系统中生成 SSH 密钥的更深入教程,请参阅 GitHub 的 SSH 密钥指南 https://help.github.com/articles/generating-ssh-keys
GitHub操作
- 按图示步骤操作:
- Title用来区分多个密钥:(默认邮箱名?)
clip < ~/.ssh/id_rsa.pub # git命令复制文件内容
- 输入自己GitHub 账号的密码,而不是上面刚刚设置的密码
- 添加成功:
测试【SSH Key】
1.输入测试代码:
ssh -T git@github.com
- 【The authenticity of host ‘github.com (13.229.188.59)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?】警告信息,输入yes 回车即可。 - 【Warning: Permanently added ‘github.com,13.229.188.59’ (RSA) to the list of known hosts.】警告:永久添加“github.com,13.229.188.59”(RSA)到已知主机列表中。(【.ssh】文件夹下生成一个【known_hosts】文件)
- 【Enter passphrase for key ‘/c/Users/Administrator/.ssh/id_rsa’:】输入你的【push】密码刚刚设置的。
- 注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。
- 【Hi QMec/Test! You’ve successfully authenticated, but GitHub does not provide shell access.】QMec/Test仓库名,确认是自己的,且显示此信息说明SSH设置成功,如果你看到 【access denied】 ,者表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。
注意事项
- 密码不能忘
总结
- 需要多参考几篇文档才能精通呀!
- 学习到 Linux 的命令是 Shell 语言,代码块应该使用 shell(bash 也可以)。
思考
- SSH加密传输的作用,我的理解是:可以防止其他人【push】文件到你的GitHub仓库。
【如果有什么疑问或指正,请留言。】