【瑞吉外卖⑨】Git 粗略学习

12 篇文章 6 订阅
1 篇文章 0 订阅

  • 若文章内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系博主删除。

  • 本人写这篇博客旨在制作学习笔记,巩固知识。同时方便个人在线阅览,回顾知识。
  • 这篇博客中主要参考了【瑞吉外卖项目】视频中的内容,略有增删。



前言


瑞吉外卖】项目课程:Git 学习


  • 该课程在某站视频下的简介
    • 《瑞吉外卖》项目课程以当前热门的外卖点餐为业务基础,业务真实、实用、广泛。
    • 基于流行的 Spring BootMyBatis Plus 等技术框架进行开发,带领学习者体验真实项目开发流程、需求分析过程、代码实现过程。
    • 学完本课程可以锻炼需求分析能力、编码能力、bug 调试能力,增长开发经验。


官方所给的资料链接中是没有视频中出现的 PPT 的,本博客的主要内容就是摘抄自其视频中出现的 PPT 内容。

另外,此处只是粗略学习,许多具体的问题和细节操作还是要诸位自行学习才行。


  • Git 课程的学习对应视频教程的 P103~P116

0.总目录链接



1.Git 概述


1.1.Git 简介


Git 是一个 分布式 版本控制工具。

通常用来对软件开发过程中的源代码文件(Java 类、xml 文件、html 页面等)进行管理。


软件开发过程中,一般通过 Git 仓库来存储和管理众多的源代码文件。

  • Git 仓库分为两种
    • 本地仓库:开发人员自己电脑上的 Git 仓库
    • 远程仓库:远程服务器上的 Git 仓库

1


  • commit:提交,将本地文件和版本信息保存到本地仓库。
  • push:推送,将本地仓库文件和版本信息上传到远程仓库。
  • pull:拉取,将远程仓库文件和版本信息下载到本地仓库。

问:学完 Git 后我们可以做什么?

答:代码回溯、版本切换、多人协作、远程备份。


1.2.Git 的下载和使用


下载地址:https://git-scm.com/download

2

下载后得到 .exe 文件,直接默认安装即可。


安装完成后在任意目录下点击鼠标右键,若可以看到如下菜单则表示安装完成。

3

  • Git GUI Here:打开 Git 图形界面
  • Git Bash Here:打开Git 命令行

2.Git 代码托管服务


2.1.常用的 Git 代码托管服务


Git 中存在两种类型的仓库:本地仓库远程仓库

我们可以借助互联网上提供的一些代码托管服务来实现 git 远程仓库的搭建。

其中比较常用的有:GitHub码云Gitee)、GitLab 等。


  • GitHubhttps://github.com)是一个面向开源及私有软件项目的托管平台。
    • 只支持 Git 作为唯一的版本库格式进行托管。
  • 码云https://gitee.com)是国内的一个代码托管平台。
    • 由于服务器在国内,所以相比于 GitHub,码云速度会更快。
    • 注:2022518Gitee 仓库开源须审核,已开源部分仓库暂时关闭,审核通过后再次公开。
  • GitLabhttps://about.gitlab.com)是一个用于仓库管理系统的开源项目。
    • 使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。
  • BitBuckethttps://bitbucket.org)是一家源代码托管网站。
    • 采用 MercurialGit 作为 分布式 版本控制系统,同时提供商业计划和免费账户。

2.2.使用码云代码托管服务



  1. 注册码云账号

注册网址:https:/gitee.com/signup

4


  1. 登录码云

注册完成后就可以使用之前注册过的游戏来进行登录操作

登录网址:https://gitee.com/login

4


  1. 创建远程仓库
    5
  • 创建完成后可以查看仓库信息

6

  • 注意:每个 Git 远程仓库都会对应一个网络地址,点击【克隆 / 下载】按钮,在弹出窗口点击【复制】按钮可以获得网络地址。

  1. 邀请其他用户成为仓库会员

前面已经在码云上创建了自己的远程仓库,目前仓库成员只有自己一个人(身份为管理员)。

在企业实际开发中,一个项目往往是由多个人共同开发完成的。

为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。

7


2.3.使用 GitHub 代码托管服务



8


https://github.com/new

9


3.Git 常用命令


3.1.Git 全局设置


当安装 Git 后首先要做的事情是设置用户名称和 email 地址。这是非常重要的,因为每次 Git 提交都会使用该用户信息。


  • 设置用户信息(签名)
git config --global user.name "itcast"
git config --global user.email "hello@itcast.cn"

  • 说明
    • 签名的作用是区分不同操作者身份。
    • 用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
    • Git 首次安装必须设置一下用户签名,否则无法提交代码。

  • 注意
    • 这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

  • 查看配置信息
git config --list
git config user.name
git config user.email

通过上面的命令设置的信息会保存在 ~/.gitconfig 文件中。

注意:上面设置的 user.nameuser.email 并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置。


3.2.获取 Git 仓库


要使用 Git 对我们的代码就行版本控制,首先需要获得 Git 仓库。



  1. 在本地初始化一个 Git 仓库
  • 执行步骤
    • 在任意目录下创建一个空目录(例如repo1)作为我们的本地仓库
    • 进入这个目录中,点击右键打开 Git bash 窗口
    • 执行命令:git init

如果可以在当前目录中看到 .git 文件夹(该文件夹是隐藏文件夹),则说明 Git 仓库创建成功。

10


  1. 从远程仓库克隆

可以通过 Git 提供的命令从远程仓库进行克隆,将远程仓库克隆到本地。

git clone [远程Git仓库地址] 

11

  • 注意:仓库是不能嵌套的,使用 git clone [远程Git仓库地址] 命令时,要留心目录的层级。

3.3.工作区、暂存区、版本库概念


为了更好的学习 Git,我们需要了解 Git 相关的一些概念,这些概念在后面的学习中会经常提到。

  • 版本库:前面看到的 .git 隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
  • 工作目录(工作区):包含 .git 文件夹的目录就是工作目录,主要用于存放开发的代码。
  • 暂存区:一个临时保存修改文件的地方。
    • .git 文件夹中有很多文件,其中有一个名为 index 文件就是暂存区,也可以叫做 stage

12


3.4.Git 工作区中文件的状态


  • Git 工作目录下的文件存在两种状态。
    • untracked 未跟踪(未被纳入版本控制)
    • tracked 已跟踪(被纳入版本控制)
      • Unmodified 未修改状态
      • Modified 已修改状态
      • Staged 已暂存状态

这些文件的状态会随着我们执行 Git 的命令发生变化


3.5.本地仓库操作


3.5.1.本地仓库常用命令


命令功能
git config --global user.name 用户名 设置用户签名
git config --global user.email 邮箱 设置用户签名
git init初始化本地库
git status查看文件状态
git add [文件名称]将文件的修改加入暂存区
git reset [文件名称]将暂存区的文件取消暂存
git reset --hard [版本号]切换到指定版本
git commit [文件名]将暂存区文件提交到版本库中
git commit -m "日志信息" [文件名]将暂存区的文件提交到版本库中
git log查看日志
git reflog查看历史记录

13


3.5.2.本地仓库操作演示


  • git status 查看文件状态

14

  • git status –s 使输出信息更加简洁

15


  • git add [文件名称] 将未跟踪的文件加入暂存区

16

  • 将新创建的文件加入暂存区后查看文件状态

17


  • git reset [文件名] 将暂存区的文件取消暂存

18

  • 将文件取消暂存后查看文件状态

19


  • 使用 git reset --hard [版本号] 可以切换到指定版本

  • 若之前 git commit 提交多次,会产生多个版本号。

20

20


  • git commit [文件名] 将暂存区的文件修改提交到版本库

21


  • git rm [文件名] 删除文件

21

  • 删除文件后查看文件状态

22

  • 上面删除的只是工作区的文件,需要提交到本地仓库

23


  • 将文件添加至忽略列表
  • 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。
  • 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。
  • 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

  • git log 查看日志记录

24


3.6.远程仓库操作


  • 前面执行的命令操作都是针对的本地仓库,本章节我们会学习关于远程仓库的一些操作。

3.6.1.远程仓库常用命令


命令功能
git remote查看远程仓库
git remote -v查看当前所有远程地址别名
git remote add <shortname> <url>添加远程仓库
git clone [url]从远程仓库克隆
git pull [short-name] [branch-name]从远程仓库拉取
git push [short-name] [branch-name]推送到远程仓库

3.6.2.远程仓库操作演示


  • git remote 查看远程仓库。

  • 如果想查看已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出指定的每一个远程服务器的简写。

  • 如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字。

  • git remote -v 则可以查看更为详细的信息。

在这里插入图片描述


  • 添加远程仓库,运行 git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个可以引用的简写

在这里插入图片描述


  • 克隆仓库的命令格式是 git clone [url]
  • 如果你想获得一份已经存在了的 Git 仓库的拷贝,这时就要用到 git clone 命令。
  • Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。
  • 当你执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。

在这里插入图片描述


  • 当你想分享你的代码时,可以将其推送到远程仓库。
  • 命令形式:git push [remote-name] [branch-name]
  • 注意
    • 在使用 git push 命令将本地文件推送到码云远程仓库时需要先进行身份验证认证通过才可以推送

在这里插入图片描述

在这里插入图片描述


  • git fetch 是从远程仓库获取最新版本到本地仓库,不会自动 merge

在这里插入图片描述


  • git pull 命令的作用是从远程仓库获取最新版本并合并到本地仓库

  • 命令格式:git pull [short-name] [branch-name]

在这里插入图片描述

  • 注意
    • 如果当前本地仓库不是从远程仓库克隆而是本地创建的仓库并且仓库中存在文件此时再从远程仓库拉取文件的时候会报错fatal: refusing to merge unrelated histories
    • 要解决此问题,可以在 git pull 命令后加入参数 --allow-unrelated-histories

  • 如果因为一些原因想要移除一个远程仓库 ,可以使用 git remote rm
  • 注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库。

在这里插入图片描述


3.7.分支操作


分支是 Git 使用过程中非常重要的概念。

几乎所有的版本控制系统都以某种形式支持分支。

使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

Gitmaster 分支并不是一个特殊分支。 它跟其它分支没有区别。

之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。

同一个仓库可以有多个分支,各个分支相互独立,互不干扰。


3.7.1.分支操作的相关命令


命令功能
git branch查看分支:列出本地的所有分支
git branch -r查看分支:列出所有的远程分支
git branch -a查看分支:列出所有的本地分支和远程分支
git branch [name]创建分支
git checkout [name]切换分支
git push [shortName] [name]推送至远程仓库分支
git merge [name]合并分支
git branch -d [name]删除分支
git branch -D [name]删除分支(即使该分支中进行了一些开发动作)
git push [shortName] –d [name]删除远程仓库中的分支

表中的 [name] 指的是分支名

表中的 [shortName] 指的是远程仓库的别名,比如我们之前编辑的 origin


3.7.2.分支操作展示


  • 分支操作-查看分支
    • git branch:列出本地的所有分支
    • git branch -r:列出所有的远程分支
    • git branch -a:列出所有的本地分支和远程分支

在这里插入图片描述


  • 分支操作-创建分支
    • 创建分支的命令格式:git branch [name]

在这里插入图片描述


  • 分支操作-切换分支
    • 切换分支的命令格式:git checkout [name]

在这里插入图片描述


  • 分支操作-推送至远程仓库分支
    • 切换分支的命令格式:git push [shortName] [name]
    • 若忘记了远程仓库的别名,可以使用之前学的命令:git remote -v 来查看别名

在这里插入图片描述

在这里插入图片描述


  • 分支操作-分支合并
    • 合并分支的命令格式:git merge [name]

在这里插入图片描述


  • 分支操作-删除分支
    • 删除分支的命令格式:git branch -d [name]

在这里插入图片描述

  • 如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支。

  • 如果坚持要删除此分支,可以将命令中的 -d 参数改为 -D

在这里插入图片描述

  • 如果要删除远程仓库中的分支,可以使用命令 git push origin –d branchName

3.7.3.产生冲突并解决冲突


  • 冲突产生的原因
    • 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。
    • Git 无法替我们决定使用哪一个。必须通过手动操作来决定新代码内容。

  • 解决办法
    • 编辑有冲突的文件,删除特殊符号,决定要使用的内容
    • 再将编辑好的文件添加到暂存区(git add
    • 最后执行提交(注意:此时使用 git commit 命令时不能带文件名)

3.7.4.分支产生冲突并解决的演示


例如分支 b1 中有一个文件为 test.txt

XXX@LAPTOP MINGW64 /d/GitRepository/GitHubTests/GitHubTest_2 (b1)
$ cat test.txt
create test_master.txt;

例如分支 master 中也有一个文件为 test.txt

XXX@LAPTOP MINGW64 /d/GitRepository/GitHubTests/GitHubTest_2 (master)
$ cat test.txt
create test_b1.txt;

合并分支时,master 两个分支在同一个文件的同一个位置有两套不同的内容。

此时就会产生冲突,git bash 界面会报错。

XXX@LAPTOP MINGW64 /d/GitRepository/GitHubTests/GitHubTest_2 (master)
$ git merge b1
Auto-merging test.txt
CONFLICT (add/add): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.

此时当你输入其他命令时,它户强制要求你解决当前问题。

error: you need to resolve your current index first
test.txt: needs merge

我们打开冲突的 test.txt 文件。

在这里插入图片描述


在此,我们可以编辑有冲突的文件,删除特殊符号,决定要使用的内容。

在这里插入图片描述


将编辑好的文件添加到暂存区(git add

XXX@LAPTOP MINGW64 /d/GitRepository/GitHubTests/GitHubTest_2 (master|MERGING)
$ git add test.txt

此时,我们检查一下,该分支下的文件的状态

XXX@LAPTOP MINGW64 /d/GitRepository/GitHubTests/GitHubTest_2 (master|MERGING)
$ git status
On branch master
All conflicts fixed but you are still merging.
  (use "git commit" to conclude merge)

Changes to be committed:

        modified:   test.txt

现在执行提交

注意此时使用 git commit 命令时不能带文件名

使用 git commit 命令时带文件名必会报错

XXX@LAPTOP MINGW64 /d/GitRepository/GitHubTests/GitHubTest_2 (master|MERGING)
$ git commit -m "the problem has been solved" test.txt
fatal: cannot do a partial commit during a merge.

除了git commit命令后不带文件名外,还有一个方法就是加git commit [文件名] 后加 -i

XXX@LAPTOP MINGW64 /d/GitRepository/GitHubTests/GitHubTest_2 (master|MERGING)
$ git commit -m "the problem has been solved" test.txt -i
[master c633a3e] the problem has been solved

3.8.标签操作


Git 中的标签,指的是某个分支特定时间点的状态。通过标签,我们可以很方便的切换到标记时的状态。

其中比较有代表性的是人们会使用这个功能来发布结点(v1.0v2.0)。

下图就是 MyBatis-Plus 的标签

在这里插入图片描述


3.8.1.标签操作的常用命令


命令功能
git tag创建标签
git tag [name]创建标签
git push [shortName] [name]将标签推送到远程仓库
git checkout -b [branch] [name]检出标签

3.8.2.标签操作演示


  • 列出已有的标签可以使用命令:git tag

在这里插入图片描述


  • 创建标签可以使用命令:git tag [name]

在这里插入图片描述


  • 将标签推送到远程仓库的命令格式是:git psuh [shortName] [name]

在这里插入图片描述


  • 检出标签时需要新建一个分支来指向某个标签,检出标签的命令格式:git checkout -b [branch] [name]

在这里插入图片描述


  • 强调
    • 标签 是一个静态的概念,一旦 标签 确定后,其中的文件的状态就确定了。
    • 分支 是一个动态的概念,其中的文件的状态可以发生变化。

4.在 Idea 中使用 Git


  • 写这篇博客的目的旨在巩固之前所学知识,以及想要写完整个项目博客的强迫症, 所写内容并不是特别详细。
  • 故于此推荐一个态度更为认真详细的博客:IDEA 集成 Gitee 和使用操作 Gitee

4.1.在 IDEA 中配置 Git


IntelliJ IDEA 中使用 Git,本质上还是使用本地安装好的 Git 软件。

故我们需要在 IDEA 中配置 Git

在这里插入图片描述


4.2.获取 Git 仓库


IDEA 中使用 Git 获取仓库有两种方式:

  1. 本地初始仓库;
  2. 从远程仓库克隆。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


4.3.本地仓库操作


  • 将文件加入暂存区
  • 将暂存区的文件提交到版本库
  • 查看日志

我们可以右键 “Git” ,再 add

完成上面操作后,再右键 “Git” ,再 commit 提交。

在这里插入图片描述
在这里插入图片描述


亦或者点击 IDEA 上方的小图标(我这里因为设置了idea的主题风格,所以和视频中的图看起来有所差别)

在这里插入图片描述

在这里插入图片描述

这里相当于把 “add”“commit” 的操作全部做了。


查看日志的话,还是点击之前的 “Git” 小栏附近的图标

在这里插入图片描述

在显现出的控制台里我们可以看到日志信息。

在这里插入图片描述


4.4.远程仓库操作


  • 查看远程仓库
  • 添加远程仓库
  • 推送到远程仓库
  • 从远程仓库中拉取

  • 查看、添加、修改、删除远程仓库

  • 单个文件操作和整个项目的操作是差不多的,这里只演示了整个项目的操作。

在这里插入图片描述

在这里插入图片描述

  • 需要注意的是,在此处删除远程仓库。只是删除了本地仓库和远程仓库的关联关系,远程仓库并没有删除掉。

  • 推送到远程仓库

在这里插入图片描述
在这里插入图片描述


  • 从远程仓库中拉取

在这里插入图片描述

在这里插入图片描述


4.5.分支操作


  • 查看分支
  • 创建分支
  • 切换分支
  • 将分支推送到远程仓库
  • 合并分支

  • 查看分支创建分支切换分支

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


  • 除了点击上面的图标来管理分支,我们也可以点击下面的图标,进行相同的操作。

在这里插入图片描述


  • 将分支推送到远程仓库

在这里插入图片描述
在这里插入图片描述


  • 合并分支

在这里插入图片描述



  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值