Git 学习笔记

1 Git 概述

1.1 Git 与版本控制

image-20220723110151637

  1. Git 是什么:是一个免费的、开源的、分布式的版本控制系统,可以快速高效地处理从小到大的所有项目

  2. 何为版本控制:

  • 版本控制是一种记录文件内容变化,一遍将来查阅特定版本修订情况的系统

  • 版本控制最重要的就是可以记录文件修改历史记录,从而让用户可以查看历史版本,方便版本之间的切换

  1. 为什么要版本控制:公司的正式开发中,往往是团队协作进行开发,因此需要进行版本控制

1.2 版本控制工具

集中式版本控制工具

image-20220723111402604

  • 例如 CVSSVNVSS

  • 所有文件的修订版本都交由一个单一的服务器进行版本控制

  • 优点:每个人可以一定程度上看到项目中别人的进度、管理员管理各个版本比较方便

  • 缺点:如果服务器突然宕机,那么这段时间内,所有人都无法工作

分布式版本控制工具

image-20220723112142705

  • 例如 GitMercurialBazaarDarcs

  • 客户端提取的不是版本的文件快照,而是整个代码仓库

  • 当任何一处协同工作的文件发生故障,都可以用其他客户端的本地仓库进行恢复

  • 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)

  • 每个客户端保存的都是完整的项目(包含历史记录,更加安全)

1.3 Git 工作机制

image-20220723113732133

  • 如果代码在工作区(磁盘上的项目文件夹)中,那么修改代码就是修改了,删除就是删除了,不会生成历史版本

  • 如果使用 git add 将代码添加到了暂存区,那么与工作区类似,也不会生成历史版本

  • 如果使用 git commit 将代码提交到了本地库,那么就会生成一个历史版本

  • 如果使用 git push 将代码推送到了远程库,那么就会在云端生成一个历史版本(若仓库开源,该版本将对所有互联网人可见)

1.4 代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般称之为 远程仓库

  • 基于局域网:GitLab

  • 基于互联网:GitHubGitee

2 Git 常用命令

2.1 设置用户签名

git 在最初使用之前,需要设置用户签名(只需要设置一次即可),否则无法提交代码

# 设置用户名签名
git config --global user.name 用户名
# 设置邮箱签名(邮箱不一定真实存在,可以为虚拟的)
git config --global user.email 邮箱

2.2 初始化本地库

  1. 首先在本地建立一个文件夹用来存放项目的代码(这里命名为 test-git
# 创建本地库文件夹
mkdir test-git

image-20220723161818526

  1. 然后在项目的根目录,右键打开 git 客户端

image-20220723165425112

  1. 使用如下命令初始化 git 本地库,会在本地库根目录下生成一个 .git 文件夹(windows 下默认隐藏,需要打开显示隐藏文件选项)
# 初始化本地库
git init

image-20220723163603290

2.3 查看本地库状态

  1. 在一个新创建的本地库中,使用如下命令查看本地库状态
# 查看本地库状态
git status
  1. 出现如下界面,说明仓库中没有东西可以去提交(仓库什么代码都没有,就一个 .git 文件夹,即本地库的初始状态)

image-20220723163633533

  1. 我们使用 vim 命令,随意新建一个文件
# 新建一个名为 hello.txt 的文件
vim hello.txt
  1. 然后再次使用如下命令查看本地库状态
# 查看本地库状态
git status

image-20220723163822515

根据输出的信息我们知道,已经有一个未被 git 追踪的文件 hello.txt 生成了

2.4 添加暂存区

  1. 将上面的 hello.txt 添加到暂存区,被 git 追踪到
# 将 hello.txt 文件添加到暂存区
git add hello.txt

image-20220723164258768

出现的警告不用理会,这是 Windows 下的换行符转化为 Linux 下换行符的警告,无关紧要

  1. 再次使用 git status 查看本地库状态,此时文件 hello.txt 已经存在于暂存区中

image-20220723164427941

  1. 上面提到过,暂存区中的文件是可以删除的,使用如下命令可以删除
# 删除暂存区中的 hello.txt 文件
git rm --cached hello.txt

image-20220723164927754

  1. 从暂存区删除之后,再次使用 git status ,发现 hello.txt 只是从暂存区中被删除,而工作区中依然存在该文件

image-20220723165142080

  1. 我们再次将该文件添加到暂存区中,进行后续学习

2.5 提交本地库

将文件添加到暂存区之后,接着就是将暂存区的文件添加到本地库

  1. 将缓存区的代码提交到本地库
# 将缓存区的 hello.txt 提交到本地库
git commit -m "第一次提交" hello.txt
  1. 再次使用 git status 命令

image-20220723204030587

  1. 使用如下命令可以查看提交的版本号与日志
# 查看提交的版本号与日志(简略信息)
git reflog

# 查看提交的版本还与日志(详细信息)
git log

image-20220723204213654

2.6 修改文件

  1. 打开 hello.txt 文件,修改一下该文件
# 修改文件
vim hello.txt

image-20220723204746918

  1. 然后查看该文件的状态,信息显示 hello.txt 文件已经被修改
# 查看文件状态
git status

image-20220723204828304

  1. 我们将修改添加到暂存区,然后再使用 commit 进行提交,提交后再次查看日志,发现已经有两个版本了
# 将修改添加到暂存区
git add hello.txt

# 查看提交状态
git status

# 二次提交代码到本地库
git commit -m "第二次提交" hello.txt

# 查看版本信息及日志
git reflog

image-20220723205439826

2.7 历史版本

2.7.1 查看历史版本

前边已经介绍过,就以下两个命令

# 查看提交的版本号与日志(简略信息)
git reflog

# 查看提交的版本还与日志(详细信息)
git log
2.7.2 版本穿梭

版本穿梭的实质:GIt 在移动底层的 HEAD 指针

假设现在,我觉得第三版本修改的内容不合适,想回退到二号版本,可以按照如下步骤操作

  1. 首先查看所有的版本信息,可以看到,目前 master 分支指向的是第三个版本
# 查看版本信息
git reflog

image-20220723210539041

  1. 将想要穿梭的版本号进行复制(这里想穿梭到第二个版本,版本号为 84c10a2),然后使用如下命令进行穿梭
# 版本穿梭
git reset --hard 84c10a2

# 查看日志信息
git reflog

image-20220723211219255

3 Git 分支操作

3.1 什么是分支

  • 在版本控制过程中,同时推进多个任务,我们就可以为每个任务,创建单独的分支

  • 使用分支,程序员可有将自己的工作从开发主线上分离出来,开发自己的分支,并不影响主线分支的运行

  • 一个分支,就是一个简单的副本(分支的底层,也是指针的引用)

3.2 为什么使用分支

  • 使用分支后,可以同时并行推进多个功能的开发,提高开发效率

  • 各个分支开发过程中,如果某分支开发失败,不会对其他分支有任何影响

  • 失败分支删除重新开始即可

3.3 分支基本操作

3.3.1 查看分支
# 查看分支
git branch -v

image-20220724092027571

3.3.2 创建分支
# 创建一个名为 first-branch 的分支
git branch first-branch

image-20220724092442180

3.3.3 切换分支
# 切换到 first-branch 分支
git checkout first-branch

image-20220724092756065

3.3.4 修改分支
# 使用 vim 打开 hello.txt
vim hello.txt

# 修改之后,添加暂存区,提交本地库
git add hello.txt
git commit -m "first-branch 分支第一次提交"

image-20220724093503581

3.3.5 分支正常合并

在之前我们只对 first-branch 分支进行了修改,而 master 分支没有进行任何修改,现在将 first-branch 分支合并到 master 分支上

这就属于就属于正常合并(当前分支未修改,另一个分支修改了)

# 切换当前分支为 master
git chekout master

# 合并 first-branch 分支到 master 分支上
git merge first-branch

image-20220724102720556

3.3.5 分支冲突合并

Q:为什么会产生代码冲突?

A:在开发时,若对于同一文件同一位置,产生了几个完全不同的修改,此时 git 无法替我们决定使用哪一个分支,必须要人为决定新代码的内容

  1. 首先我们要创造一个冲突的情况。根据之前的操作下,first-branch 分支与 master 分支是完全相同的情况

  2. 接下来我们在两个分支的 hello.txt 文件的同一位置(假设为最后一行末尾处),添加不同的信息

  3. 修改 master 分支的 hello.txt

# 打开 hello.txt 文件
vim hello.txt

# 添加暂存区
git add hello.txt

# 提交本地库
git commit -m "master分支最后一行修改了"

# 查看文件内容
cat hello.txt

image-20220724103638634

  1. 切换分支为 first-branch ,继续修改文件、添加暂存区、提交本地库
# 切换为 first-branch 分支
git checkout first-branch

# 打开 hello.txt 文件
vim hello.txt

# 添加暂存区
git add hello.txt

# 提交本地库
git commit -m "first-branch分支最后一行修改了"

# 查看文件内容
cat hello.txt

image-20220724104241936

  1. 此时,已经在同文件同位置出现了完全不同的修改,产生了冲突

  2. 接下来,我们切换回 master 分支,在 master 分支下,合并 first-branch 分支

# 切换为 master 分支
git checkout master

# 在 master 分支下合并 first-branch 分支
git merge first-branch

image-20220724105854719

  1. 合并分支产生了冲突,我们打开 hello.txt 文件,发现文件内容发生了变化
# 打开 hello.txt 文件
vim hello.txt

image-20220724110256530

  1. 接下来就需要我们去人为修改文件内容了(这里我将两行都保留),最终修改结果如下

image-20220724110607278

  1. 保存文件修改,添加暂存区,提交本地库
# 添加暂存区
git add hello.txt

# 提交本地库(此时,commit 命令之后不能带文件名,否则会让 git 无法抉择该合并哪个分支的文件)
git commit -m "合并分支冲突"

image-20220724110813883

  1. 要注意的是,合并操作只会修改当前分支,不会修改另外的分支
# 查看 master 分支下的 hello.txt
cat hello.txt

# 切换分支为 first-branch
git checkout first-branch

# 查看 first-branch 分支下的 hello.txt
cat hello.txt

image-20220724111251137

4 Git 团队协作机制

4.1 团队内协作

image-20220724113404452

假设:老师给学生布置了作业,老师只写了作业的题目,要求学生远程完成题目的内容

  1. 老师在自己的本地库写好题目之后,使用 git push 命令,将作业推送到远程库(步骤 1)

  2. 学生使用 git clone 命令将远程库中老师推送的题目完整克隆下来,就拿到了完整的作业题目(步骤 2)

  3. 学生完成了题目,然后从自己的本地库中使用 git push 命令,将已经完成的作业推送到远程库(步骤 3)

  4. 老师现在可以使用命令 git pull 命令,将远程库的代码拉取到自己的本地库,就可以完整的看到学生已经完成的作业(步骤 4)

以上,就是团队内部协作的原理

4.2 跨团队协作

image-20220724115353727

假设:老师给学生布置了作业,但是学生不会做,所以想去校外找外援帮助自己完成作业

  1. 学生使用 git push 命令,将自己本地库的代码提交到自己的远程库(步骤 1)

  2. 外援是外校的,不可能直接加入学生所在的团队,因此要使用 fork 功能,将学生的远程仓库复制了一个分支到自己的远程库(步骤 2)

  3. 外援将复制过来的作业,从自己的远程库使用 git clone 克隆到自己的本地库(步骤 3)

  4. 外援不负众望,完成了作业,然后使用 git push 推送代码到自己的远程库(步骤 4)

  5. 然后外援向学生的远程库提交请求 pull request ,请求验收成果(步骤 5)

  6. 学生审核外援的成果是否合格(步骤 6)

  7. 审核通过,学生使用 git merge 命令将外援的仓库分支合并到自己的远程仓库中来(步骤 7)

  8. 最后,学生使用 git pull 命令将已经完成的作业,从远程库拉取到本地库,至此,作业已经完成(步骤 7)

以上,就是跨团队协作的基本流程

5 Github 操作

Github:全球最大的代码托管平台(同性交友网站)

5.1 注册账号

  1. 打开管网之后,点击右上角的登录按钮

image-20220725095925454

  1. 有账号的直接登录,没有账号的点击下方的注册按钮

image-20220725100016750

  1. 然后就是用户名、密码、邮箱、验证什么的,一路 continue 即可

image-20220725100239153

  1. 加下来填入发送给我们注册邮箱的验证码,接下来是个人偏好信息等选项,随意填写即可

image-20220725100554303

5.2 创建远程库

  1. 进入个人主页后,点击右上角的按钮来创建一个新的远程库

image-20220725101123123

  1. 填入仓库名、仓库的私有与否,点击最下方的创建按钮(此处创建名为 test 的远程库)

image-20220725101347788

  1. 创建好之后初始界面如下

image-20220725093711538

5.3 远程仓库操作

5.3.1 创建远程库别名

一般情况下,我们远程库的地址都太长了不好记忆,因此需要为仓库创建一个别名来方便我们的记忆

  1. 首先可以使用如下命令来查看当前的所有别名(仓库刚创建是没有别名的)
# 查看所有别名
git remote -v

image-20220725094010274

  1. 使用如下命令,创建远程库别名

image-20220725094341604

# 为远程库创建名为 test-git 的别名(此处选择 ssh 方式)
# 此处的 git@github.com:WuDaoJiuXiao/test.git 为我们新创建的远程库的地址
# 若没有配置 ssh 秘钥,这里请选择 https 
# ssh 具体操作详见 ——>  5.3.7 ssh 免密登录
git remote add test-git git@github.com:WuDaoJiuXiao/test.git

# 查看所有别名
git remote -v

image-20220725094515173

5.3.2 推送本地库到远程库

远程库创建好之后,就应该将本地库的代码推送到远程库了

  1. 使用如下命令进行代码推送
# 推送本地库的代码到远程库的 master 分支
# 推送语法 git push 别名 分支
git push test-git master
  1. 如果是第一次使用 Github,在进行推送的时候,会弹出如下框让我们授权登录,选择浏览器登录

image-20220725095340818

  1. 然后出现如下授权页面,等待授权成功后,会发现我们已经成功推送代码到远程库了

image-20220725095459469

image-20220725095116891

  1. 然后打开我们的 Github 远程库,发现代码已经推送成功

image-20220725095546353

5.3.3 拉取远程库到本地库

当我们是团队内开发协作时,别人提交代码之后,远程库与我们自己的本地库已经不同,这个时候就需要将远程库拉取下来

  1. 模拟一下环境,我们直接在远程库的网页端修改 hello.txt 文件内容。点击 hello.txt ,然后点击修改按钮

image-20220725102018670

  1. 我们在最后一行添加一些信息后,点击网页下方的 commit changes 进行提交

image-20220725102418519

  1. 然后我们去本地库进行远程库的拉取
# 拉取远程库的 master 分支代码到本地库
# 拉取语法 git pull 别名 分支
git pull test-git master

image-20220725102743112

5.3.4 克隆远程库到本地

有时候我们看见优秀的开源项目,想下载下来自己学习,这个时候就用到了克隆命令

  1. 这里以 RuoYi 项目为例,赋值该项目的远程库地址(https 和 ssh 均可,ssh 操作方式详见 5.3.7)

image-20220725103746665

  1. 使用克隆命令进行克隆(克隆项目不需要登录)
# 克隆仓库到本地
git clone git@github.com:yangzongzhuan/RuoYi.git

image-20220725103948550

5.3.5 团队内协作

在公司的日常开发中,一般都需要同一个团队合作开发一个项目,那么怎么进行团队协作?

这里以我的两个账号为例进行演示(主账号:WuDaoJiuXiao; 副账号:Miaskl)

  1. 在主账号(WuDaoJiuXiao)的 test 仓库页面,点击上方的 setting 选项

image-20220725105952590

  1. 点击侧边栏的 Collaborators 选项,进行项目成员管理

image-20220725110027687

  1. 在该页面依次 Add People 按钮,然后在搜索框输入将要邀请的成员名(这里为 Misskl),点击搜索出来的用户,然后点击蓝色确认按钮

image-20220725110353981

  1. 然后在该界面,点击 Pending Invite 发送邀请

image-20220725110621823

  1. 然后被邀请的成员登录自己的账号(这里就是 Miaskl),点击右上角的消息按钮,发现已经收到了其他成员(WuDaoJiuXiao)的邀请,点击该邀请

image-20220725110956345

  1. 点击 Accept invitation 按钮,接受团队成员的邀请

image-20220725111057738

  1. 现在已经成功加入了团队项目的远程库中,而且在其他成员的账号中均可以查看到

image-20220725111343647

image-20220725111415916

5.3.6 跨团队协作

这里依然使用我的两个账号模拟,假设副账号(Miaskl)fork 了主账号(WuDaoJiuXiao)的 test 仓库(仓库可见性必须设置为 public),要进行修改

  1. 登录副账号(Miaskl),打开想要 fork 的主账号的那个 test 仓库,点击右上角的 fork 按钮

image-20220725151012378

image-20220725151122134

  1. 副账号 fork 之后,就可以修改里面的代码了(这里在 hello.txt)最后一行加上一点信息

image-20220725151419615

  1. 修改好代码之后,需要进行拉取请求。副账号点击仓库上面的 pull requests 栏目,再点击 New pull requests 按钮,创建新的拉取请求

image-20220725151537525

image-20220725151723617

  1. 再点击 Create pull requests

image-20220725151830369

  1. 填写 commit 信息和其他信息之后,点击右下方的提交按钮

image-20220725152111147

  1. 然后登录主账号,主账号的 test 仓库就会有一个拉取请求

image-20220725152243080

  1. 点击进入该拉取请求,可以看到很详细的修改及留言信息。主账号审核通过之后,点击下方的 Merge pull request 进行拉取请求的合并

image-20220725152530377

  1. 到此为止,跨团队协作的基本流程结束,可以看到,主账号的 test 仓库中,代码内容已经修改了

image-20220725152747961

5.3.7 免密 SSH 登录

Github 的链接有两种,https 方式和 ssh 方式,两者有什么区别呢?

  • https 方式

    • 优点:更加的简单易用,只要知道仓库的 https 地址,就可以很轻松的进行除过 push 以外的所有操作

    • 缺点:如果要频繁的进行操作(如 pull),就需要不断地进行网页账户认证(即 5.3.2 中的 2 步骤)

  • ssh 方式

    • 优点:更加的灵活,只要在一台电脑上设置了 ssh 秘钥,并且该秘钥被某个 Github 账户保存了,那么就可以无限次的进行各种操作,而不需要每次都要网页认证

    • 缺点:需要我们手动去设置

  1. 在任意位置打开 git 命令行,首先检验此电脑是否已经有 ssh 公钥
# 显示电脑家目录下所有文件夹(包括隐藏文件夹)
ls ~ -la | grep ^d

image-20220725155937299

  1. 看输出目录中是否有 .ssh/ 文件夹,如果有则说明已经有了 ssh 公钥了,直接跳到步骤

  2. 因为我一直使用的就是 ssh 方式,这里为了演示,我将它删除,再次查看,发现删除成功,继续配置 ssh 秘钥

image-20220725160342421

  1. 再次在命令行输入如下命令,生成 ssh 公钥
# 生成 ssh 公钥,最后的那个邮箱,随意填写即可,只是一个标注信息
ssh-keygen -t rsa -C skg_xsn@126.com
  1. 输入上方的命令后,连着按三次回车后,出现如下界面表示秘钥生成成功

image-20220725160647541

  1. 输入下方的命令,查看生成的 ssh 秘钥
# 查看本机的 ssh 秘钥
cat ~/.ssh/

image-20220725160852881

  1. 秘钥生成完毕,该页面不要关闭,留待备用

  2. 然后打开自己的 Github 主页,点击主页右上角头像里的设置按钮,进入设置页面

image-20220725161141015

  1. 点击侧边栏中的 SSH and GPG keys,再点击右边的 New SSH key 按钮,新建 ssh-key

image-20220725161244042

  1. 给 SSH 秘钥起一个容易记住的名字填入 title 一栏,在 key 一栏中,将步骤 6 中输出的 ssh 秘钥完整的赋值粘贴到这里,然后点击下方的添加按钮

image-20220725161523109

  1. 出现如下界面,代表秘钥添加成功

image-20220725161755030

  1. 测试一下 SSH 秘钥是否生效,分别尝试一下 pullpush 功能,均正常,ssh 秘钥添加成功!

image-20220725162952777

image-20220725163224669

6 IDEA 集成 Git

在日常的开发中,我们都会使用电脑本地的 IDE 来进行开发,并且需要频繁地提交代码、修改代码,j就要不断地输入命令,很是繁琐

这就需要 IDE 也要集成 git 功能,只需要点击按钮,即可实现各种 Git 操作

常用的 IDE 有很多,例如 PyCharm、CLion、IDEA、WebStorm 等等,操作方式都大同小异,这里以 IDEA 创建 Spring 工程为例

6.1 配置忽略文件

  1. 项目中的一些无关紧要的文件都是不需要上传远程库的,因此需要让 git 在上传时忽略这些文件

  2. 在项目根目录创建一个名为 .gitignore 的文件,在里面写上要让 git 忽略的文件、文件夹(被 git 忽略并接管后,这些文件会变成灰色)

image-20220725164927041

6.2 配置 Git 程序

  1. 点击 IDEA 左上角的 File —> Setting ,打开设置面板

  2. 在左边找到版本控制中的 Git 栏目,右边选择 Git 的安装路径中 /bin 目录下的 git.exe 程序

image-20220725165806386

  1. 点击右边的 Test 测试,当出现 Git 版本时,表示设置成功

image-20220725165715409

6.3 初始化&添加&提交

  1. 到目前为止,我们的项目还没有被 git 所接管(即还未进行 git init

  2. 依次点击 IDEA 菜单栏的 VCS —> Import into Version Control —> Create Git Reposity... ,选择项目的根目录,初始化 git 仓库

image-20220725170409269

  1. 初始化完成之后,可以看到,一部分文件变成了红色(未被 git 追踪的,还在工作区,未被添加到暂存区),一部分变成了灰色(被 git 忽略的),说明项目已经被 Git 接管

image-20220725170725182

  1. 现在将红色的文件添加到暂存区,右击项目目录,依次点击 Git —> Add

image-20220725171311295

  1. 此时看到,红色的文件已经变绿,这说明已经添加到了暂存区,未被提交到本地库

image-20220725171417621

  1. 然后右击项目根目录,依次点击 Git —> Commit Directory...,准备提交本地库

image-20220725171811412

  1. 在弹出的框中,输入 commit 的信息,点击提交

image-20220725172017637

  1. 现在再去看项目文件,发现文件已经回复正藏的颜色,说明提交本地库成功

image-20220725172100120

6.4 切换版本

  1. 首先我们创造出几个版本,然后点击 IDEA 左下角的 Git ,在 Log 栏目中,就可以查看版本信息

image-20220725175504778

  1. 然后在要切换的版本号上右键,选择 Checkout Revision xxxx 切换版本

image-20220725175619275

  1. 切换之后发现,master 指针已经指向了新的版本号,对应的代码也已经改变

image-20220725175922689

6.5 创建分支

  1. 点击 IDEA 的右下角图示图标,选择 New Branch 来创建新的分支

image-20220725180257904

image-20220725180342725

  1. 此时看右下角,分支已经被切换

image-20220725180459798

  1. 再次切换回 master 分支只需要再次点击该图标,选择 master 分支即可

image-20220725180609522

6.6 正常合并分支

master 分支中,点击右下角的图标,选择要合并的分支,点击 Merge into Current 合并分支

image-20220725181144550

6.7 冲突合并分支

  1. 当合并分支时产生了代码冲突,就会弹出如下界面,需要我们手动去指定合并的内容

image-20220725181722117

  1. 点击 Merge... 按钮,手动进行合并,合并分支的界面共有以下三个部分

image-20220725182119309

  1. 手动合并完成后,点击右下方的 Apply 应用修改,分支合并完成

image-20220725182229527

7 IDEA 集成 Github

7.1 IDEA 连接 Github

  1. 在 IDEA 中点击 File —> Setting ,打开设置面板。然后点击 Version Control —> Github ,点击右边的加号添加 Github 账户

image-20220725214147939

  1. 在弹出的框里输入你的 Github 登录账户名和密码,点击 Login 登录,几乎都会出现无效,登录失败的情况(这是非常常见的问题,毕竟国外的网站,要是直接登陆成功,恭喜你,这个环节完成了)

image-20220725214443557

  1. HTTP 方式无法登录,这里只能选择 Token 登录,首先要生成一个 Token

  2. 进入自己的 Github 主页,右上角点击 Setting ,进入设置页面

image-20220725214706429

  1. 在设置页面,滑到最底下,点击 Developer settings ,进入开发者设置页面

image-20220725214746474

  1. 点击左侧边栏的 Personal access tokens ,然后点击右上角的 Generate new Token 按钮

image-20220725214905226

  1. 在弹出的页面中,为自己的 Token 起一个名字,Token 有效期选择永久 no expiration ,然后剩下的选项建议全部勾选,最后点击页面最下方的 Generate token 按钮,生成 Token

image-20220725215348163

  1. 点击复制图标,复制生成的 Token 令牌(一定要保存好,上面蓝色框信息已经说明,该 Token 只会显示一次!!!)

image-20220725215514755

  1. 在 IDEA 中刚才的 Github 登录页面,点击右上角的 use token

image-20220725215633223

  1. 输入 Token 之后,再次点击 Login In ,这次可以成功登陆了。然后点击 OK ,保存设置,IDEA 连接 Github 成功

image-20220725215731503

image-20220725215809477

7.2 分享项目到 Github

  1. 依次点击 IDEA 菜单栏的 VCS —> Import into Version Control —> Share Project on Github

image-20220725220453370

  1. 填写项目相关信息,点击 Share 分享项目

image-20220725220828976

  1. 打开 Github,项目已经成功分享

image-20220725220953151

7.3 推送代码到远程库

  1. 随意修改一下项目,增加或删除一点代码,并且添加暂存区、提交本地库

image-20220725221445621

  1. 然后依次点击 VCS —> Git —> Push ,准备推送远程库

image-20220725221559842

  1. 出现如下界面,先不急。若此时点击提交,会使用 https 的方式,但是 Github 的网络时好时坏,为了稳定,这里需要使用 ssh 方式推送

image-20220725221741579

  1. Github 仓库复制该项目的 ssh 链接

image-20220725221944483

  1. 点击我们设置的项目别名,弹出的框点击 Define remote

image-20220725222231123

  1. 在弹出的框中输入刚刚复制的远程库 SSH 地址,点击确定,等待校验完成

image-20220725222404317

  1. 校验完成后,点击 Push 进行推送,这样就不会因为网络问题而推送失败,推送成功后 IDEA 右下角会弹出成功的信息,打开浏览器确认推送成功

image-20220725222608780

7.4 拉取代码到本地

  1. 首先在远程库修改一下仓库代码,我们在 UserController 中添加如下代码后保存修改

image-20220725223356955

  1. 在 IDEA 中依次点击 VCS —> Git —> pull ,准备拉取代码

image-20220725223540829

  1. 这里选择使用 ssh 方式拉取,点击 pull 进行拉取

image-20220725223710759

  1. 拉取成功后,发现 IDEA 中的代码已经与远程库同步

image-20220725223816749

7.5 克隆代码到 IDEA

  1. 仍然以 RuoYi 项目为例,首先赋值该项目的 ssh 链接,重启 IDEA,在启动页面,点击第三个 Get from Version Control

image-20220725224210394

  1. 在弹出的框中粘贴刚才复制的项目链接,点击 Clone

image-20220725224426331

  1. 项目克隆成功!

image-20220725224826007

posted @ 2022-07-25 22:51  悟道九霄  阅读(38)  评论(0编辑  收藏  举报