Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用

Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用

  • Git、TortoiseGit、GitHub、Gitee、GitLab 简介
    • Git
    • TortoiseGit
    • GitHub
    • Gitee
    • GitLab
  • Git 进行通信的原理简介
    • 非对称加密
    • Git 的通信方式
  • 实战
    • Git 的下载与配置
      • Git 的下载与安装
      • 创建一个 Git 项目
      • 生成密钥对
    • TortoiseGit 的下载与配置
      • TortoiseGit 的下载与安装
      • 生成密钥对
    • GitHub 的使用
      • 注册账号
      • 绑定公钥
      • 创建 GitHub 代码仓库
      • 下载 GitHub 代码
      • 上传文件至 GitHub
    • Gitee 的使用
      • 注册账号
      • 绑定公钥
      • 创建 Gitee 代码仓库
      • 下载 Gitee 代码
      • 上传文件至 Gitee
    • GitLab 的使用
      • GitLab 下载与安装
  • Git 进阶

  很多人刚开始接触到标题的这些个名词时并不是自愿的,毕竟为什么要费力了解自己看来完全不需要的东西。但是很遗憾,这还是企业开发的入门技术,个人进行较大型的开发时使用它们也很有意义。本文简介它们的入门知识,但它们所包含的内容还不止如此,读者还需要在使用时边学习边积累。

Git、TortoiseGit、GitHub、Gitee、GitLab 简介

Git

  Git 是什么?在回答这个问题之前,需要知道没有它会有哪些问题。我们习惯使用操作系统自带的文件系统来管理文件,通常,这已经能满足我们的大多数需求了。不过,考虑一个更复杂但实际的问题。如果我们对一个文件进行了多次的修改、替换、删除,然后某天我们后悔了,想找回之间的那个文件该怎么办呢?显然,这不是简单通过一个操作系统中的回收站就可以解决的——它最多只能解决删除的问题。Git 可以解决这个问题。它会将用户对本目录下所有的文件(夹)的改动都保存在本目录下的隐藏文件夹 .git 中。在不违反逻辑的情况下,用户可以自由切换到任何一个历史的状态。

  对于多人合作开发,Git 能带来极大的便利。相对于 SVN,它不需要时时刻刻联网,这又是它的一大优势。不过要注意,Git 适合用于对文本类型文件的版本管理,比方说代码源文件。文本类型文件往往体积小,且可直接阅读解析。如果是一种大型二进制文件,使用 Git 并不会有想象中的便利。

TortoiseGit

  虽然 Git 已经实现了版本控制,不过能否实现与使用起来是否方便没有必然性。如果只使用 Git,读者将会在感受命令行无所不能之后将 Git 卸载。毕竟,没有人愿意在没有观众的情况下,将任何操作都通过输入命令来实现。之所以会这样,大概是因为 Git 的发明者与 Linux 的是同一个人。TortoiseGit 提供了 UI 界面在很大程度上解决了这个问题。对于常用的 Git 操作,只需要通过 TortoiseGit 提供的右键菜单和 UI 界面即可完成。不过,对于较复杂的 Git 操作,仍然需要通过在命令行输入命令来完成。

GitHub

  Git 只是提供了版本控制的功能,但很多时候我们还需要将文件备份、在网络上分享。GitHub 提供了储存用户上传的文件的功能。在本质上,它只支持通过 Git 来上传文件。应该说,它只是一种 Git 远程仓库,而 Git 只是一种文件管理传输工具。如果可以承受一定的成本,也可以选择自行构建一个自己的 Git 远程仓库来备份自己的重要文件,而 GitHub 只是一个全球公共的 Git 远程仓库。

  不过,前面提到过,Git 只是适合用于对文本类型文件的版本管理。因此,依赖 Git 的 GitHub 与普通理解中的云盘是有很大区别的。GitHub 并不适合备份自己的任何类型的文件,这不仅仅是限于网速与安全性。如果想要使用 GitHub 进行备份,要想想要备份的文件,它的历史版本是否重要。

Gitee

  GitHub 的一个很大的弊端就是,它需要互联网,但它不是国人发明的。这意味着会有网络的问题。实际上,这个问题很大。不管是不是高峰期,对于国内的普通网络,五次能有一次可以打开 GitHub 主页已经不错了。Gitee 就是一种 GitHub 的“国内版本”,它又叫码云。使用 Gitee 基本不会有网络的问题,而且它还支持导入 GitHub 中的项目。这意味着,如果直接下载某个 GitHub 项目很慢,可以选择先在 Gitee 中将其导入,然后直接在 Gitee 中下载。

GitLab

  GitLab 与前面的 GitHub、Gitee 很相似,不过它可以作为一个私有的 Git 远程仓库。可以使用 GitLab 作为平台来在个人服务器上搭建一个 Git 远程服务器,这样在将本地 Git 项目推送到远端时,可以不借助互联网,只需要局域网,就储存在自己的私人存储空间中。这对企业开发是很有利的,毕竟将自己企业的数据上传至非私有的服务器有很大的安全隐患。

  GitLab 服务器在搭建完成之后,还可以像 GitHub、Gitee 一样在网页端对其进行访问。支持像 GitHub、Gitee 一样注册账号和管理这些账号。另外,它还支持 CI、CD 功能。

  对于 GitLab 的基础功能,使用 GitLab 是免费的,如果需要更多的功能,这需要按功能强大程序支付相应的费用。另外,GitLab 只能直接部署在指定的 Linux 上,对部署的 Linux 的硬件性能也有一定的要求。

Git 进行通信的原理简介

非对称加密

  信息在互联网上传输是要加密的,这个加密是强制的,不能选择让自己自愿承担风险而主动放弃加密。这就好比现在不能自愿承担被盗号风险而拒绝登记手机号一样。

  这里来讲讲非对称加密。出于本文的重点,这里不作深入探究,也不讲解其它的加密方式,这是密码学的内容。非对称加密是通过公钥与私钥来进行加密与解密的,其中,公钥与私钥的内容是不同的,因此称为非对称加密。具体来说,对于一次信息传输,发送方会先将此信息使用接收方公钥进行加密,然后发送给接收方,接收方会使用接收方私钥进行解密,从而保证传输时信息的安全。

  那么,发送方如何才能获得接收方的公钥呢?说明这个问题之前,先要说明的是,公钥与私钥的区别不仅在于,公钥是用加密的,私钥是用于解密的。实际上,公钥对外公开的,而私钥只有接收方才知道。在这个信息传输过程中,接收方的公钥与私钥都是接收方自己使用一定的算法生成的。在一开始,只有接收方知道自己的公钥与私钥,然后接收方将自己的公钥首先以明文的方式传给发送方,之后发送方才会向接收方传输信息。因为公钥只能用于加密,所以不怕别人知道。比方说,如果第三者通过监听等手段窃取了传输过程中接收方的公钥和发送方的密文,但他没有接收方的私钥,所以他拥有密文,他也不知道实际内容是什么。

Git 的通信方式

  前面讲过,GitHub、Gitee 都是使用 Git 进行文件传输的代码托管平台,而支持很多种通信协议,如 HTTPS、SSH 等。这里重点讲解通过 SSH 方式的传输。

  如果使用 HTTPS 进行传输,则密钥的生成是由软件自动完成的。实际上这个过程较为复杂,不过它对用户透明,所以不需要了解其中的内部机制。通常,这和普通的网页下载方式没有区别,通信效率会受到网络的影响。

  如果使用 SSH 进行传输,通信效率往往高于 HTTPS,不过需要额外进行一些手动配置。SSH 通信时使用非对称加密。在使用该协议之前,需要先手动生成自己的密钥对,然后将自己的公钥上传给远端代码托管平台,最后在传输前指定自己的私钥才能进行传输。自己生成的私钥是与当时同时生成的公钥是配对的,因此私钥必须妥善保存。如果之后不小心删除了本地的私钥,则需要再生成一对密钥并将公钥上传。

实战

  前面已经给出它们的简介。现在开始介绍它们的入门实战使用。

Git 的下载与配置

Git 的下载与安装

  1. 打开 Git 官网下载 Git。Git 的下载链接其实源自 GitHub。前面提到过,对于国内普通的网络,此过程会很缓慢。

    Git 的官网下载地址:https://git-scm.com/download/win

    另外,Git 在 GitHub 上的开源地址是:https://github.com/git-for-windows/git/

  2. Git 的安装较为傻瓜,正如它的名称一样。对于新手来说,在下载完 Git 安装包之后,安装时除了注意安装路径之外,一直 next 即可。

  3. 在正常安装完 Git 之后,右键菜单应该会有关于 Git 的菜单项。点击 Git Bash Here 即可进入 Git 的命令行界面:

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第1张图片

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第2张图片

创建一个 Git 项目

  1. 在命令行下输入命令即可创建一个 Git 项目(代码仓库):

    git init

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第3张图片

生成密钥对

  1. 如果很喜欢使用 Git 命令行进行与远程代码平台的交互,则需要使用 Git 生成的密钥对。生成密钥的方法是,先设置 用户名邮箱

    git config --global user.name "用户名"

    git config --global user.email "邮箱"

    其中,上面的 用户名邮箱 要改为自己需要设置的相应值,且双引号不能丢。

  2. 输入以下生成密钥对。然后一直按 ENTER 即可:

    ssh-keygen -t 加密算法 -C "邮箱"

    其中,上面的 邮箱 要改为自己需要设置的相应值,且双引号不能丢。这里,加密算法可以使用 ed25519。即:

    ssh-keygen -t ed25519 -C "邮箱"


    【注意】

      很早以前,上述生成密钥对的命令是:

    ssh-keygen -t rsa -C "邮箱"

      但 GitHub 在 2022 年 3 月 15 日之后将不再支持 RSA 算法生成的密钥,原因是 RSA 不够安全,因此现在不能再使用此命令了。更多的信息,可见笔者的另一篇博客:https://blog.csdn.net/wangpaiblog/article/details/124416005


  3. 可见,上面的命令生成了密钥对,并将其保存在了文件夹 C:\Users\Windows 用户名\.ssh 中。打开该文件夹,可以看到两个文件:id_加密算法名、id_加密算法名.pub。第一个文件是私钥,第二个文件是公钥。这两个文件其实都是文本文件,都可以文本方式打开。前面说过,公钥需要提供给远程平台,因此需要复制其中的内容。这里,需要复制的公钥的内容为全文。

    再次提醒:私钥需要妥善保存。如果没有私钥,前面上传至远程平台的公钥等于作废。


    【注意】

      不管使不使用其它工具,这个密钥对是必须要用 Git 生成的。它用于唯一标识一台主机,如果将本密钥拷贝到其它主机上,密钥将失效。


TortoiseGit 的下载与配置

TortoiseGit 的下载与安装

  1. 必须先安装 Git 之后才能安装 TortoiseGit。

  2. 打开 TortoiseGit 的官网下载 TortoiseGit,网址:https://tortoisegit.org/download/

    TortoiseGit 还提供了官方汉化包。通常,进行汉化可以减少语言的障碍,不过,此处却建议不要使用汉化包。并不是为了本末倒置地锻炼自己的英语,而是 TortoiseGit 中的有很多菜单选项对应着 Git 中的命令,而命令属于一种专有名词,它不应该被翻译。在 TortoiseGit 中使用汉化会对 Git 的学习带来干扰,所以建议不要使用汉化。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第4张图片

  3. TortoiseGit 的安装比 Git 还要傻瓜,此处不作介绍。如果同时下载了汉化包,则汉化包需要在TortoiseGit 的安装包安装之后才能进行安装。在安装完 TortoiseGit 之后,右键菜单应该有了关于 TortoiseGit 的菜单项。进入 Settings 之后,应该能看到关于 Git 的安装信息。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第5张图片

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第6张图片

生成密钥对

  1. 在进行本步骤时,需要先在本机中完成前面使用 Git 生成密钥的步骤,否则使用 TortoiseGit 生成的密钥将不被远程 Git 仓库所认可。

  2. 在开始菜单中找到 TortoiseGit 的一个程序 PuTTYgen,并运行。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第7张图片

  3. 导入前面使用 Git 生成的私钥

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第8张图片

  4. 保存私钥。注意:此过程不需要点击 Generate


    【答疑】

      前面已经通过 Git 生成了私钥,为什么还需要再使用 TortoiseGit 导入这个私钥,然后再生成另一个私钥呢?因为 Git 生成的那个私钥,在使用 TortoiseGit 进行文件传输时,TortoiseGit 无法解析。TortoiseGit 只能解析自己生成的后缀为 .ppk 的那种私钥,所以在使用 TortoiseGit 进行文件传输时,必须要先生成 TortoiseGit 版本的私钥。


    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第9张图片

    再次提醒:私钥需要妥善保存。如果没有私钥,前面上传至远程平台的公钥等于作废。

  5. 在密钥列表中添加此密钥。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第10张图片

  6. 添加刚刚保存的私钥。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第11张图片

  7. 和 Git 一样,需要填写 用户名邮箱 信息。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第12张图片

GitHub 的使用

注册账号

  1. 注册一个 GitHub 账号。GitHub 的官网是:https://github.com/

绑定公钥

  1. 前面提到过,GitHub 需要绑定公钥用于文件传输。方法如下:

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第13张图片

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第14张图片

  2. 在此处,需要粘贴前面生成的公钥全文。注意,公钥需要以 ssh-加密算法名 作开头。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第15张图片


    【注意】

      可以上传多个公钥,但前面使用 Git 生成的那个公钥必须上传,否则就会引发如下报错。

    [email protected]: Permission denied (publickey).
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights
    and the repository exists.
    

创建 GitHub 代码仓库

  1. 只有先创建一个 GitHub 仓库之后才能向 GitHub 上传代码。方法如下:

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第16张图片

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第17张图片

下载 GitHub 代码

  1. 下载 GitHub 仓库代码可以使用很多方式,前面已经提到过,如 HTTPS、SSH 等,一般选择 SSH。因为前面已经上传过公钥,所以此处可以使用 SSH 来下载。如果没有绑定公钥,则只能使用 HTTPS 的方式,一般来说,对于国内网络的 GitHub,下载起来会非常慢。如果选择 SSH 的方式,则需要先复制此项目的 SSH 地址。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第18张图片

  2. 然后可以选择 Git 或 TortoiseGit 来下载,这里选择 TortoiseGit。下载 GitHub 代码仓库的本质是使用的 Git 的 git clone 命令。下载的时候需要指定自己前面生成的私钥。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第19张图片

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第20张图片

  3. 下载成功的标志是显示 Success 字样。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第21张图片

上传文件至 GitHub

  1. 如果对 Git 仓库的文件进行了改动,则在资源管理器中会有红色角标标识。此标识代表此改动还没有使用 Git 来保存。

    在这里插入图片描述

  2. 可以使用 git addgit commit 命令将此改动提交至本地 Git 记录中。如果使用 TortoiseGit,这个操作可以变得没有技术障碍。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第22张图片

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第23张图片

  3. 如果想将本次改动更新至 GitHub 中,则需要使用 git push 命令。push 时也需要借助自己的私钥,通常,这需要事先在本地 Git 项目中事先指定。如果这个项目源自前面从远程仓库的 clone,则这个私钥将默认设为前面 clone 时的私钥。

    psuh 有很多方法,在 TortoiseGit 中,这可以接着上面的 git commit 之后来完成。

Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第24张图片

  1. 现在,如果刷新 GitHub 中相应的代码仓页面,应该可以看到刚才的改动。

Gitee 的使用

注册账号

  1. Gitee 的使用与 GitHub 基本类似,而且 Gitee 还是全中文的界面,可以说是无障碍了。首先,也是需要注册一个 Gitee 账号。Gitee 的官网是:https://gitee.com/

绑定公钥

  1. 与 GitHub 一样,这也需要上传公钥。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第25张图片

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第26张图片

创建 Gitee 代码仓库

  1. 这个非常简单,与 GitHub 也是类似的,从略。

下载 Gitee 代码

  1. 与 GitHub 类似的,需要先获得该代码仓的 SSH 地址。

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用_第27张图片

  2. 复制之后的操作与前面在 GitHub 中是完全一样的。这里从略。

上传文件至 Gitee

  1. 此部分与前面在 GitHub 中也是完全一样的,这里从略。这是因为 Gitee 和 GitHub 一样,只是一个远程代码仓库而已。

GitLab 的使用

GitLab 下载与安装

  • 关于这方面的内容,可见笔者的另一篇博客:

    Linux 下 GitLab 安装教程:
    https://blog.csdn.net/wangpaiblog/article/details/122264366

Git 进阶

fork 与 branch、clone 的区别:
https://blog.csdn.net/wangpaiblog/article/details/115879464

Git 开发模式:
https://blog.csdn.net/wangpaiblog/article/details/124003188

你可能感兴趣的:(教程/入门使用,git,github,Gitee,TortoiseGit)