【Java】Java核心 78:Git 教程(1)Git 概述

文章目录

        • 01.GIT概述
          • 目标
          • 内容
          • 小结
        • 02.GIT相关概念
          • 目标
          • 内容
          • 小结


在这里插入图片描述

01.GIT概述

Git是一个分布式版本控制系统,常用于协同开发和版本管理的工具。它可以跟踪文件的修改、记录历史版本,并支持多人协同工作。通过Git,你可以轻松地创建和切换分支、合并代码、回滚修改等操作。

以下是Git一些常用的命令和功能:

git init: 在当前目录初始化一个新的Git仓库。
git clone [URL]: 克隆(下载)远程仓库到本地。
git status: 查看工作区和暂存区的状态。
git add [file]: 将文件添加到暂存区。
git commit -m "message": 提交暂存区的文件变更,创建一个新的版本。
git push: 将本地分支上的提交推送到远程仓库。
git pull: 从远程仓库拉取最新的代码到本地分支。
git branch: 查看分支列表。
git checkout [branch]: 切换到指定分支。
git merge [branch]: 将指定分支的代码合并到当前分支。
git log: 查看提交日志历史。
git diff: 查看文件的修改差异。
git stash: 暂存当前工作区的修改,方便切换分支或恢复之后再应用修改。
目标
  • 说出GIT的作用以及特点
内容
  • Git是目前世界上最先进的分布式文件版本控制系统(没有之一)

  • 版本控制 所谓的版本控制就是将一组文件的改动记录下来,形成版本历史,以便需要时恢复

  • GIT作用

    • 代码共享

      每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传的代码下载到自己的电脑上,这样就实现了代码共享

在这里插入图片描述

  • 回溯版本

    在开发的过程中其实还会遇到各种奇葩问题,比如自己心血来潮写了一段超级牛×的代码,本着闲着也是闲着的思想,在这段代码的基础上又进行了调优,但是优没调成,代码还给整的不能用了。鉴于马上要要交活了,这个时候就打算放弃,但是你发现原来能用的代码已经被改的面目全非,不能用了,那这就太让人崩溃了。这个时候就幻想着如果这两小时什么事情都没有发生该多好,如果能时间倒流该多好。Git告诉你,这事我能做。Git除了可以帮我们保存代码,还可以保存每次上传的痕迹,每上传一次就做一次备份,上传3次就备份3次,每次备份就相当于一个版本,任意时间可以通过Git查询曾经提交过的每一个版本对应的内容,这样就可以随时恢复到之前任意上传时间对应的状态了

在这里插入图片描述

  • 追踪信息

    使用Git的过程中大部分时间是管理自己写的东西,但是也会存在一些情况需要你去改别人的代码或者几个人编辑同一个文件。此时同一个文件,你改改,我改改,最后算谁的啊?出了问题你追责都没的追,怎么解决这个问题呢?Git提供了强制记录日志的功能,每次上传信息要求书写日志,可以记录本次上传的相关信息。比如写清楚本次上传的内容啊,对应的说明啊,等等。关于日志的内容书写格式并不是规范类的东西,只能算是一个约定,因此每个公司对开发者提交日志都有自己的要求,上传时写什么东西,这样出了问题就可以进行信息追踪了

在这里插入图片描述

小结
  • 什么是git,它的作用是什么

    1)Git 是一个开源的分布式版本控制系统

    2)作用:

    1.代码共享

    2.信息追踪

    3.版本回溯

  • GIT与SVN的区别【面试题,不用理解,概念性记忆】

    • Git 是分布式的,SVN 不是
    • Git 把内容按元数据方式存储,而 SVN 是按文件
    • Git 分支和 SVN 的分支不同
    • Git 没有一个全局的版本号,而 SVN 有
    • Git 的内容完整性要优于 SVN

在这里插入图片描述

02.GIT相关概念

目标

可以画图说明GIT中工作区【Workspace】、暂存区【Index Stage】、版本库、运程仓库【Remote】的作用

内容

git没有中央版本库,但是为了方便开发小组的成员们进行代码共享,我们通常会搭建一个远程的git仓库。和svn不同的是开发者本地也包含一个完成的git仓库,从某种程度上来说本地的仓库和远程的仓库在身份上是等价的,没有主从。

在这里插入图片描述

# 1.工作区:就是你平时存放项目代码的地方。位置:一个文件夹通过git init 设置成一个git可以管理的文件夹时,这个文件夹里的内容(除去.git文件夹)就是工作区。

在这里插入图片描述

# 2.仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。就是工作区有一个隐藏目录 .git,它不算工作区,而是 Git 的版本库
# 3.暂存区:英文叫 stage 或 index。是用来暂时存放工作区中修改的内容,可以理解为一个中转站。1)位置:一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。2)只是一个文件3)包含在版本库中4)为什么需要暂存区:1.如果没有暂存区,如果想要提交文件就需要一个个修改然后,提交,比较麻烦,但是有了暂存区就可以一次性将所需要的文件从暂存区			直接修改后提交。2.如果没有暂存区,你修改的文件只可以立刻保存到版本库中,但是这样很容易对别人的工作造成影响

在这里插入图片描述

# 4.Head :指向最新放入仓库的版本
# 5.master:是我们的主分支。当我们git init后,并不会立刻产生分支。而是我们添加了一个文件,并git add,git commit后这时我们查看分支情况便可以看到master分支了。是本地仓库一部分。
# 6.objects:是git对象库,是用来存储各种创建的对象以及内容.
# 7.远程仓库:托管代码的服务器,常用github。码云。gitlab
小结
  • 什么是工作区

    就是我们自己创建的目录,放置 我们要管理的文件

  • 什么是暂存区

    在将工作区内容加入到本地仓库,在加入到本地仓库前,是先放置在暂存区的



在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/667.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法题】动态规划中级阶段之跳跃游戏、最大子数组和、解码方法

动态规划中级阶段 前言一、最大子数组和1.1、思路1.2、代码实现 二、跳跃游戏2.1、思路2.2、代码实现 三、解码方法3.1、思路3.2、代码实现 总结 前言 动态规划(Dynamic Programming,简称 DP)是一种解决多阶段决策过程最优化问题的方法。它是…

【Software Testing】【期末习题库】【2023年春】【仅供参考】

文章目录 ①单选②多选③填空④判断⑤大题 类型总分占比平时成绩40%考试/考查60% 题型题量分值备注单选201’多选103’全对3’,错1个0’,少选-1’填空102’判断52’大题210’ 平时习题(3次): ①软件测试概述 ②黑盒测…

Java微服务金融项目智牛股-基础知识一(CAT链路监控)

CAT链路监控 背景:从单体架构到微服务架构的演变, 一个业务请求往往会流转多个服务, 大型互联网产品服务架构尤为复杂,腾讯的抢红包服务, 阿里的交易支付服务, 可能就流转成百上千个服务节点, 面…

SAP从入门到放弃系列之可用性检查-订单物料可用性检查-Part1

文章目录导航 概述:系统配置:物料可用性检查维护检查规则维护物料下达维护组件检查类型 数据测试:系统配置准备主数据准备测试结果 概述: 在生产订单下达时保证有足够的组件可以用于生产业务,保证生产业务能够按计划执…

createdTime(new Date()) 数据库时间比实际多八小时

本来是createdTime(new Date()),一次生成两条数据 一直正常,今天却多八小时 一开始往new Date()差八个小时的问题上找, 网上说要 在apprication.yml文件中配置一下数据…

考研算法31天:归并排序 【归并排序,分治】

算法介绍 归并算法其过程分为三步: 1.分:递归到最下面 2.治:两个元素之间排序。 3。归:递归到最下层然后返回,从两个元素变成四个元素再排序。 如下图所示: 动态图如下: 算法题目 算法ac代…

【设计模式】模板方法与策略模式的结合使用

文章目录 1. 概述1.1.简述模板方法 2.模板方法实现2.1.简单实现2.2.在SpringBoot中的实现 3.模板方法与策略模式的结合使用3.1.代码实现 4.总结 1. 概述 模板方法是一种非常简单的设计模式,只要能够理解面向对象中的继承与多态就能够理解这种设计模式,我…

Spark中python和jvm的通信杂谈--ArrowConverter

背景 要提起ArrowConverters,就得说起Arrow这个项目,该项目的初衷是加速进程间的数据交换,从目前的社区发展以及它的周边来看,其实是一个很不错的项目。 那为什么Spark要引入Arrow呢?其实还得从Pyspark中python和jvm的…

购物车业务

一、分析购物车vo (1)添加成功页 public class CartItemVo implements Serializable {/*** 商品id*/private Long skuId;/*** 是否选中*/private Boolean check true;/*** 商品标题*/private String title;/*** 商品图片*/private String image;/***…

【Docker】Docker运行时间长,空间不足no space left on device: unknown

空间不足no space left on device: unknown问题解决 1.执行出错2.解决方法3.dump文件是否可以删除 1.执行出错 在运行 docker restart 容器Id查看磁盘空间占用 df -h2.解决方法 这个问题是由与 /run 的空间使用完了,清理/run的空间,经过查找使用最大的是 /run/u…

Windows服务启动exe无界面终极解决方案

1、前言 我这个方案(C#操作)是彻底解决【从Windows服务启动程序exe,程序无界面】问题的终极解决方案,终极方案,绝对的终极方案,本来打算收钱的,还是算了,你们也不容易,关…

【前端工程化】深入浅出vite(二)--vue3全家桶+ts构建后管系统

安装基础包 npm create vitelatest # 这里选择的是VueTypescript的组合 cd vue-admin npm install# 先安装基础包 npm install vue-router4 npm i pinia npm i axios npm install sass --save-dev npm install element-plus --save npm install element-plus/icons-vue npm in…