【瑞吉外卖】项目课程:Git 学习
- 该课程在某站视频下的简介
- 《瑞吉外卖》项目课程以当前热门的外卖点餐为业务基础,业务真实、实用、广泛。
- 基于流行的 Spring Boot、MyBatis Plus 等技术框架进行开发,带领学习者体验真实项目开发流程、需求分析过程、代码实现过程。
- 学完本课程可以锻炼需求分析能力、编码能力、bug 调试能力,增长开发经验。
- 黑马瑞吉外卖实战项目的相关链接
- 在线观看:https://www.bilibili.com/video/BV13a411q753
- 百度网盘链接:https://pan.baidu.com/s/1bxEy2bHiCYQtouifUppsTA
- 提取码:1234
- 阿里云盘链接:https://www.aliyundrive.com/s/DS2XMVojBjH
官方所给的资料链接中是没有视频中出现的 PPT 的,本博客的主要内容就是摘抄自其视频中出现的 PPT 内容。
另外,此处只是粗略学习,许多具体的问题和细节操作还是要诸位自行学习才行。
Git 是一个 分布式 版本控制工具。
通常用来对软件开发过程中的源代码文件(Java 类、xml 文件、html 页面等)进行管理。
软件开发过程中,一般通过 Git 仓库来存储和管理众多的源代码文件。
问:学完 Git 后我们可以做什么?
答:代码回溯、版本切换、多人协作、远程备份。
下载地址:https://git-scm.com/download
下载后得到 .exe
文件,直接默认安装即可。
安装完成后在任意目录下点击鼠标右键,若可以看到如下菜单则表示安装完成。
Git 中存在两种类型的仓库:本地仓库、远程仓库。
我们可以借助互联网上提供的一些代码托管服务来实现 git 远程仓库的搭建。
其中比较常用的有:GitHub、码云(Gitee)、GitLab 等。
注册网址:https:/gitee.com/signup
注册完成后就可以使用之前注册过的游戏来进行登录操作
登录网址:https://gitee.com/login
前面已经在码云上创建了自己的远程仓库,目前仓库成员只有自己一个人(身份为管理员)。
在企业实际开发中,一个项目往往是由多个人共同开发完成的。
为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。
https://github.com/new
当安装 Git 后首先要做的事情是设置用户名称和 email 地址。这是非常重要的,因为每次 Git 提交都会使用该用户信息。
git config --global user.name "itcast"
git config --global user.email "[email protected]"
git config --list
git config user.name
git config user.email
通过上面的命令设置的信息会保存在 ~/.gitconfig
文件中。
注意:上面设置的 user.name 和 user.email 并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置。
要使用 Git 对我们的代码就行版本控制,首先需要获得 Git 仓库。
git init
如果可以在当前目录中看到 .git 文件夹(该文件夹是隐藏文件夹),则说明 Git 仓库创建成功。
可以通过 Git 提供的命令从远程仓库进行克隆,将远程仓库克隆到本地。
git clone [远程Git仓库地址]
git clone [远程Git仓库地址]
命令时,要留心目录的层级。为了更好的学习 Git,我们需要了解 Git 相关的一些概念,这些概念在后面的学习中会经常提到。
这些文件的状态会随着我们执行 Git 的命令发生变化
命令 | 功能 |
---|---|
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 |
查看历史记录 |
git status
查看文件状态git status –s
使输出信息更加简洁git add [文件名称]
将未跟踪的文件加入暂存区git reset [文件名]
将暂存区的文件取消暂存使用 git reset --hard [版本号]
可以切换到指定版本
若之前 git commit
提交多次,会产生多个版本号。
git commit [文件名]
将暂存区的文件修改提交到版本库git rm [文件名]
删除文件# 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
查看日志记录命令 | 功能 |
---|---|
git remote |
查看远程仓库 |
git remote -v |
查看当前所有远程地址别名 |
git remote add |
添加远程仓库 |
git clone [url] |
从远程仓库克隆 |
git pull [short-name] [branch-name] |
从远程仓库拉取 |
git push [short-name] [branch-name] |
推送到远程仓库 |
git remote
查看远程仓库。
如果想查看已经配置的远程仓库服务器,可以运行 git remote
命令。 它会列出指定的每一个远程服务器的简写。
如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字。
git remote -v
则可以查看更为详细的信息。
git remote add
添加一个新的远程 Git 仓库,同时指定一个可以引用的简写git clone [url]
git clone
命令。git clone
命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。git push [remote-name] [branch-name]
。git push
命令将本地文件推送到码云远程仓库时,需要先进行身份验证,认证通过才可以推送。git fetch
是从远程仓库获取最新版本到本地仓库,不会自动 mergegit pull
命令的作用是从远程仓库获取最新版本并合并到本地仓库
命令格式:git pull [short-name] [branch-name]
git pull
命令后加入参数 --allow-unrelated-histories
git remote rm
分支是 Git 使用过程中非常重要的概念。
几乎所有的版本控制系统都以某种形式支持分支。
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
Git 的 master 分支并不是一个特殊分支。 它跟其它分支没有区别。
之所以几乎每一个仓库都有 master 分支,是因为 git init
命令默认创建它,并且大多数人都懒得去改动它。
同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
命令 | 功能 |
---|---|
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
。
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
git add
)git commit
命令时不能带文件名)例如分支 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
Git 中的标签,指的是某个分支特定时间点的状态。通过标签,我们可以很方便的切换到标记时的状态。
其中比较有代表性的是人们会使用这个功能来发布结点(v1.0 、v2.0)。
下图就是 MyBatis-Plus 的标签
命令 | 功能 |
---|---|
git tag |
创建标签 |
git tag [name] |
创建标签 |
git push [shortName] [name] |
将标签推送到远程仓库 |
git checkout -b [branch] [name] |
检出标签 |
git tag
git tag [name]
git psuh [shortName] [name]
git checkout -b [branch] [name]
在 IntelliJ IDEA 中使用 Git,本质上还是使用本地安装好的 Git 软件。
故我们需要在 IDEA 中配置 Git。
在 IDEA 中使用 Git 获取仓库有两种方式:
我们可以右键 “Git” ,再 add。
完成上面操作后,再右键 “Git” ,再 commit 提交。
亦或者点击 IDEA 上方的小图标(我这里因为设置了idea的主题风格,所以和视频中的图看起来有所差别)
这里相当于把 “add” 和 “commit” 的操作全部做了。
查看日志的话,还是点击之前的 “Git” 小栏附近的图标
在显现出的控制台里我们可以看到日志信息。
查看、添加、修改、删除远程仓库
单个文件操作和整个项目的操作是差不多的,这里只演示了整个项目的操作。