Git详细介绍
听了b站上瑞吉外卖这个课程,对Git的总结
目录
快速入门
Git概述
Git代码托管服务
常用的Git代码托管服务
使用码云代码托管服务
Git常用命令
Git全局设置
获取Git仓库
工作区、暂存区、版本库概念
Git工作区中文件的状态
本地仓库操作
远程仓库操作
分支操作
分支合并时冲突解决
标签操作
在IDEA中使用Git
在IDEA中配置Git
获取Git仓库
.gitignore文件
本地仓库操作
远程仓库操作
分支操作
快速入门
Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。
演示:(假如a,b两人同时开发同一个项目,如下图,a配置完之后点击菜栏中绿色的对号,b点击向下的箭头就会出现a配置的)
Git概述
Git代码托管服务
远程仓库如何创建如何管理,其实是通过Git代码托管服务来实现的。
常用的Git代码托管服务
使用码云代码托管服务
新建仓库:
邀请别人一起来维护这个仓库:点开仓库——>管理——>仓库成员管理
Git常用命令
Git全局设置
设置用户名名称和email地址,前两条是设置这个,第三条是查看配置信息
获取Git仓库
要使用Git对我们的代码进行版本控制,首先需要获得Git仓库。
获取Git仓库通常有两种方式:
1、在本地初始化一个Git仓库。(不常用)
就会在repo1中创建一个隐藏的文件夹:查看——>显示
2、从远程仓库克隆(常用)(注意在哪个目录下执行,因为仓库不能嵌套)
工作区、暂存区、版本库概念
Git工作区中文件的状态
Git工作区中的文件存在两种状态:
1、untracked 未跟踪(未被纳入版本控制)
2、tracked 已跟踪(被纳入版本控制)
1)Unmodified 未修改状态
2)Modified 已修改状态
3)Staged 已暂停状态
举例说明:(假如现在在hellogit工作目录下创建一个user.java的文本文档)
然后在git中查看状态:(未被跟踪)
然后执行git add <file>命令,就变成了已暂存状态:
本地仓库操作
提交:
提交之后又打开user.java文本文档修改了:
提交修改后的user.java文本文档,查看状态,查看日志:
查看日志的commit后面跟的是版本号:(表示回到还没有修改user.java文本文档的版本,此时再打开user.java文本文档什么都没有,相当于回溯到之前的状态)
远程仓库操作
查看远程仓库:(因为hellogit是从远程仓库克隆的,而repo1是本地初始化的仓库)(一般来讲origin是仓库的简称是一种习惯)
给本地仓库添加一个远程仓库:
首先我又在gitee中创建了一个repo1仓库,并且点击初始化readme文件了,然后克隆之后给它里面新建了test.txt文本,并且里面随便写了一些东西。
如下,是提交到了本地仓库,远程仓库还没有提交。(注意:要先提交本地仓库才能提交到远程仓库)
提交远程仓库:(git push命令)
然后刷新一下你的仓库页面:
从远程仓库拉取(git pull origin master):
a和b处理同一个项目,然后a把项目的一个xml文件修改了,这时a就会先把这个文件提交到本地仓库,然后再推送到远程仓库,b从远程仓库拉取就可以了。
注意点:
如下本地初始化的仓库helloworld:(存在自己创建的test.txt文本文档,这时再从远程仓库拉取就会报错)
分支操作
查看分支:
代码示例:
切换分支:
把b1分支推送到远程仓库:
注意,假如再master分支下创建了一个user.txt文本文档,那么git切换到b1分支就没有这个user.txt文本文档因为他是master分支下的,但是如果又切换回master分支他就又会显示user.txt文本文档。很神奇,也可以在b1分支下设置与master不同的b1.txt文本文档,只有在git切换到b1分支下才会展示它,因为它属于b1而不属于master。
合并分支:
把b1分支合并到master:
分支合并时冲突解决
如果同时在master与b1分支下来修改b1.txt文本,然后再合并的时候就会出现问题。
假如现在我修改了master分支下的之前合并b1分支的b1.txt这个文本,同时也修改了b1分支下的b1.txt文本,并且把他们两个分别提交到本地仓库之后再提交到远程仓库,可以发现两个分支下的b1.txt文本不一样(也就是它们两个分支并没有一个分支改这个文本,另一个分支跟着改;而是说两个互不干涉),于是现在想到再执行合并分支的操作,但是会报错,如下:
解决方法:
1、手动改master中的b1.txt文本,把两个分支都改的内容都加进去。
2、
3、只要出现上面那个报错的问题,都在代码后面加上-i就解决了
4、上传远程仓库:(只有master这个分支下的b1.txt是手动改的内容;b1分支下还是他原来的内容)
标签操作
举例:
这个v0.1标签记录的是如下状态:
并且在gitee上也会出现这个标签:
1、假如我又创建了一个abc.txt文本,然后执行如下代码:
2、然后检出标签(检出标签需要新建一个分支来指向某个标签),分支名叫什么都可以,随便,比如我们就叫b0.1
文件夹内容:
在IDEA中使用Git
在IDEA中配置Git
配置如下图的路径。
获取Git仓库
1、本地初始化仓库。
菜单——>VCS——>创建Git仓库...——>选这个项目的文件夹——>确定。
gitdemo这个项目目录就变成了仓库目录,可以看见多了个隐藏文件夹.git(等价于在这个目录下执行了git init命令)
执行完之后在最上面菜单中出现了:
2、从远程仓库克隆。
如下图URL地址其实就是远程仓库的地址。目录要改一下,改成当前项目的目录。
.gitignore文件
是git仓库中特有的文件,定义当前仓库(项目)下哪些文件不需要git管理。
本地仓库操作
1、将文件加入暂存区。
2、将暂存区的文件提交到版本库。
3、查看日志
如下仓库(项目)就是克隆远程仓库而来的:
现在要创建一个在controller包下创建一个类,创建的时候会弹出如下对话框:(点击Add,就相当于git add <file>这个命令,加入了暂存区)
如果说点错了点成取消
提交到版本库:
鼠标右键要提交的类——>git——>提交
远程仓库操作
查看与添加远程仓库:
上图中+是添加远程仓库,-是删除
推送远程仓库:也是鼠标右键——>git——>推送。或者直接在菜单中推送。
从远程仓库拉取:也是鼠标右键——>git——>拉取。或者直接在菜单中拉取。
分支操作
查看分支:右键——>git——>分支。或者最上面菜单中有master点击那里也能看到
创建分支:右键——>git——>新建分支.或者最上面菜单中有master点击那里也能创建(签出分支:创建之后直接切换到新建的分支)
切换分支:菜单上面的b1——>master——>签出
将分支推送到远程仓库:菜单上面的b1——>推送——>弹出窗口点击推送
合并分支:假如在b1中新创建了一个类,而master分支中没有,那么切换到master分支中,点击菜单上面的master——>点击b1——>合并到当前分支。然后master就有b1分支中新建的类了。