Java教程

Git基础学习之基本理论和常用操作命令

本文主要是介绍Git基础学习之基本理论和常用操作命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

上一篇博客带大家下载,安装和配置好了Git,并且还复习了一些常用Linux命令的使用,今天来带大家学习一下Git的核心理论,如何克隆GitHub和Gitee上的开源项目,以及Git的一些常用基本命令的使用
Git的安装配置和简单使用的博客链接:https://blog.csdn.net/weixin_45301250/article/details/118835212?spm=1001.2014.3001.5501

3.Git基本理论 (核心)

3.1 工作区域基本概念

3.1.1 Git的四个工作区域

Git本地有三个工作区域:工作目录 ( Woring Directory )、暂存区 ( Stage/Index )、资源库 ( Repository 或 Git Directory ),如果再加上远程的 git仓库 ( Remote Directory ) 就可以分为四个工作区域。

3.1.2 四个区域关系图解

文件在这个四个区域之间的转换关系如下:

在这里插入图片描述

  • Working Directory:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表的信息
  • Repository:本地仓库,就是安全存放数据的位置,这里面有你提交的所有版本的数据;其中HEAD指向最新放入仓库的版本
  • Remote Directory:远程仓库,托管代码的服务器,可以简单认为是你项目组中的一台用于远程数据交换的电脑

3.2 查看项目的git文件

3.2.1 了解HEAD的基本概念

本地的三个区域确切的说应该是git仓库中HEAD指向的版本

在这里插入图片描述

3.2.2 查看Springboot项目中的git文件

1.查看项目下的所有文件

在这里插入图片描述

2. 查看项目文件中的git文件

在这里插入图片描述

3.使用记事本打开HEAD文件

在这里插入图片描述

4.简单解释

ref: refs/heads/master # 指向master节点,也就是主分支

3.2.3 解决看到git文件问题

1.在文件右上角找到“隐藏的项目”

在这里插入图片描述

2.点击勾选“隐藏的项目”

在这里插入图片描述

3.3 Git的工作流程

3.3.1 Git的具体工作流程

  • 在工作目录中添加,修改文件 ( 例如添加一个UserMapper.xml映射文件 )
  • 将需要进行版本管理的文件放入暂存区域 ( 使用 git add 命令将文件添加到暂存区 )
  • 将暂存区域的文件提交到git仓库 ( 使用 git commit 命令将暂存区文件提交到本地仓库 )

提示:如果还有远程仓库的话,还需要使用 git push 命令将本地仓库文件提交到远程仓库

3.3.2 Git管理文件的三种状态

git管理的文件有三种状态已修改 ( modified )、已暂存 ( staged )、已提交 ( committed )

3.3.3 工作流程图解

git的工作流程图如下

在这里插入图片描述

4.Git项目搭建

4.1 创建工作目录与常用指令

工作目录 (Working Directory) 一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,但是建议不要有中文

日常使用只需要记住下图中的6个命令

在这里插入图片描述

重点是push、commit和add三个命令的使用

4.2 Git本地仓库的搭建

4.2.1 创建本地仓库的方法

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库

4.2.2 创建全新的仓库

1.使用 git init 初始化仓库

创建全新的仓库,需要用Git管理的项目的根目录执行

# 在当前目录搭建一个git代码库
git init

在这里插入图片描述

2.创建本地git仓库成功

在这里插入图片描述

在这里插入图片描述

结果:执行初始化后可以看到,在我们的项目目录gitcode中多出了一个.git目录,并且关于版本等的所有信息都在这个目录里面!

4.2.3 克隆远程仓库

1.克隆远程仓库原理

另一种方式是克隆远程仓库中的项目,其实就是将远程服务器上的仓库完全镜像一份到本地!

2.了解git clone [url] 命令

# 克隆一个项目和它的整个代码历史(版本信息)
git clone [url] # url是指远程仓库的地址链接

4.2.4 克隆远程仓库测试

1.什么是GitHub和gitee?

GitHub:一个国外的代码托管平台,其他都很好,但由于是国外网站,所以访问速度会较慢

gitee:用于托管代码的的国内网站,推荐使用,访问速度会相对较快

我们可以去这两个网站上去克隆别人的开源项目到本地来!

下面是GitHub和gitee的网址链接:

GitHub官方网址:https://github.com/

gitee官方网址:https://gitee.com/

2. 复制项目的地址链接

2-2 使用gitee复制链接

这里推荐使用gitee码云来克隆项目,因为是国内网站,克隆速度会相对较快!

这个项目我搭建了远程仓库,所以你们可以直接去我的仓库复制链接,仓库地址是:https://gitee.com/galloping-de-snail-rz/studentmanager

进入到仓库后,选择右上角的“克隆/下载”,复制HTTPS下的地址链接即可!

地址链接为:https://gitee.com/galloping-de-snail-rz/studentmanager.git

在这里插入图片描述

2-2 使用GitHub复制链接

不推荐使用,克隆到本地网速会很慢,但如果你搭有梯子,可以使用GitHub

仓库地址为:https://github.com/Crazy-Creator102/studentmanager

和使用码云相同相同,选择Code下的HTTPS,直接复制地址即可!

地址链接为:https://github.com/Crazy-Creator102/studentmanager.git

在这里插入图片描述

3.使用git clone命令克隆项目

3-1 开始克隆项目
# 从远程仓库克隆项目到gitcode目录下
git clone https://gitee.com/galloping-de-snail-rz/studentmanager.git

从码云上克隆的速度还是很快的,十几秒钟就下载完毕了!

在这里插入图片描述

3-2 克隆项目成功
  • 我们可以看到gitcode下出现了一个studentmanger文件夹

在这里插入图片描述

  • 点击进入studentmanger文件后,我们看到的具体的项目信息,包括.git文件在内

在这里插入图片描述

到这里,我们就成功将gitee远程仓库的开源项目,克隆到本地来了!

5.Git的基本操作命令

5.1 Git文件的4种状态

5.1.1 什么是版本控制?

版本控制就是对文件的版本控制,要对文件进行修改,提交等操作

首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上

5.1.2 Git的4中状态具体介绍

1.Untracked状态

  • 也就是未跟踪状态,此文件在文件夹中,但并没有加入到git库,不参与版本控制;

  • 通过使用 git add命令,将状态变为Staged (暂存状态)

例如:我们编写了一个hello.txt文件,本来处于Untracked (未跟踪) 状态,使用 git add hello.txt 命令,将其变为Staged (暂存) 状态

2.Unmodify状态

  • 文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致;

  • 这种类型的文件有两种去处:

    如果它被修改了,则变为Modified (已修改) 状态;

    如果使用 git rm移除版本库,则变为Untracked (未跟踪) 状态

3.Modified状态

  • 文件已修改,仅仅是修改,并没有进行其他操作;

  • 这个文件也有两个去处:

    通过使用 git add 命令,可进入Staged (暂存) 状态

    使用 git checkout 命令,则说明丢弃修改过,返回到Unmodify (未修改) 状态 (这个 git checkout,即从git库中取出文件,覆盖当前修改! )

4.Staged状态

  • 暂存状态,执行 git commit 命令,则将修改同步到git仓库中,这时仓库中的文件和本地文件又变为一致,文件为 Unmodified (未修改) 状态执行
  • 执行 git reset HEAD filename 取消暂存,文件状态为 Modified (已修改) 状态

5.2查看文件状态

上面提到文件有4种状态,通过如下命令我们可以查看到文件的状态

# 查看指定文件状态
git status [filename] 
# 查看所有文件状态
git status
# 添加所有文件到暂存区("."表示当前目录下的所有文件)
git add . 
# 提交暂存区中的内容到本地仓库 -m 提交消息
git commit -m "消息内容"

5.2.1 创建git文件并查看文件状态

# 初始化git仓库,在gitcode目录下创建.git文件
git init
# 记得首先在gitcode目录下创建一个测试文件,例如一个hello.txt文本文档
touch hello.txt
# 查看所有gitcode目录下的所有文件的状态
git status

在这里插入图片描述

结果:初始化git仓库成功,但无法查看文件状态

分析:因为它提示gitcode目录下存在未跟踪文件hello.txt文本文档,因此要使用git add命令将hello.txt添加到暂存区

5.2.2 将hello.txt添加到暂存区

# 将hello.txt文本文档添加到暂存区("."表示gitcode目录下所有文件)
git add .
# 再次查看gitcode目录下所有文件状态
git status

在这里插入图片描述

结果:成功将hello.txt文件添加到暂存区,由Untrack (为跟踪) 状态变为Staged (暂存) 状态!

5.2.3 提交hello.txt到本地仓库

# 提交暂存区中的内容到本地仓库(-m表示提交的消息)
git commit -m "new file hello.txt"

在这里插入图片描述

结果:将hello.txt文件成功同步到本地仓库!

# 再次查看hello.txt文件状态
git status

在这里插入图片描述

结果:可以看到 ”在master分支上,没有可以提交的,工作树已被清理“的提示信息,表示hello.txt文件已由Staged (暂存) 状态变为Unmodified (未修改) 状态!

5.3 忽略文件

5.3.1 什么是忽略文件?

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件和设计文件等

5.3.2 .gitignore文件规则

在主目录下建立“.gitignore”文件,此文件有如下规则:

  • 忽略文件中的空行或以井号 (#) 开始的行将会被忽略
  • 可以使用Linux通配符:例如,星号 (*) 代表任意多个字符,问号 (?) 代表一个字符,方括号 ( [ abc] ) 代表可选字符范围,花括号 ( { string,string2,…} ) 代表可选的字符串等
  • 如果名称的最前面有一个感叹号 ( ! ),表示例外规则,将不被忽略
  • 如果名称的最前面是一个路径分隔符 ( / ),表示要忽略的文件在此目录下,而子目录中的文件不忽略
  • 如果名称的最后面是一个路径分隔符 ( / ),表示要忽略的是此目录下该名称的子目录,而非文件 ( 默认文件或者目录都忽略 )
#为注释
*.txt  # 忽略所有.txt结尾的文件,这样的话上传就不会被选中!
!lib.txt # 但lib.txt除外
/temp # 仅忽略项目根目录下的TODO文件,不包括其他目录temp(可以理解为往上忽略,就是除自己以外的都不上传了)
build/ # 忽略build/目录下的所有文件
doc/*.txt # 会忽略doc/notes.txt ,但不包括 doc/sever/arch.txt

5.3.3 查看新建项目中的.gitignore文件

1.创建一个简单的springboot项目

在这里插入图片描述

2.查看项目中自动生成的.gitignore文件

HELP.md
# 针对所有项目中的忽略文件
# 忽略target目录下的所有文件
target/
# 但.mvn目录下的wrapper子目录下的maven-wrapper.jar文件除外
!.mvn/wrapper/maven-wrapper.jar
# 但**/src/main/**/target/目录下的文件除外
!**/src/main/**/target/
# 但**/src/test/**/target/目录下的文件除外
!**/src/test/**/target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### 针对IntelliJ IDEA的忽略文件 ###
# 忽略.idea文件
.idea
# 忽略.iws文件
*.iws
# 忽略.iml文件
*.iml
# 忽略.ipr文件
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/

到这里,Git的基本理论和常用操作命令的使用就结束了,欢迎大家在评论区学习和讨论!
参考视频链接:https://www.bilibili.com/video/BV1FE411P7B3 (B站的UP主遇见狂神说的Git快速入门)

这篇关于Git基础学习之基本理论和常用操作命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!