系统学习Git

news2025/1/20 14:55:57

Git目录

    • 工作区、暂存区和版本库分别是什么?
    • Git常用命令有哪些?
    • Git是如何进行分支管理的?
    • Git如何查看提交历史?
    • 实践出真知!
    • 报错
      • fatal: pathspec 'text1.txt' did not match any files

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

工作区、暂存区和版本库分别是什么?

  • 工作区:在电脑里能看到的目录
  • 暂存区:也叫索引,一般存放在 .git 目录下的 index 文件中
  • 版本库:隐藏目录 .git,是 Git 的版本库。

在这里插入图片描述

Git常用命令有哪些?

在这里插入图片描述

  1. git add:添加文件到暂存区。将代码写入到对象库中的一个新对象中,将该对象ID记录到暂存区,并更新目录树

  2. git commit:提交暂存区到版本库。将目录树写入版本库,master分支指向新的目录树

  3. git reset HEAD :版本回退

    • mixed:为默认值,等同于git reset。将文件回退到工作区,此时会保留工作区中的文件,但会丢弃暂存区中的文件;
    • soft:将文件回退到暂存区,此时会保留工作区暂存区中的文件;
    • hard:将文件回退到修改前,此时会丢弃工作区暂存区中的文件;
  4. git tag -a v1.0:打个标签

  5. 其他命令,相对好理解

Git是如何进行分支管理的?

  1. 一个分支代表一条独立的开发线。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

  2. 实例:

$ ls
README
$ echo 'runoob.com' > test.txt
$ git add .
$ git commit -m 'add test.txt'
[master 3e92c19] add test.txt
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
$ ls
README        test.txt
$ git checkout testing
Switched to branch 'testing'
$ ls
README

解释:在master分支上提交更新,在testing分支看不到,就是我们想要的结果

  1. 一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。
git merge (branchname)	//合并分支
git branch -d (branchname)	//删除分支
  1. 合并冲突:当同一个文件被两个分支都修改过,此时合并报错,需要修改。

  2. Git分支指向的过程描述:参考文章

    • 三个指针:master,dev,HEAD

    • 新创建一个从分支devmaster不动,HEAD指向dev,一直保持在提交的最前沿

在这里插入图片描述

  • 合并后,master指向当前devHEAD指向master

在这里插入图片描述

  1. 当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容。切换分支就是移动HEAD。

Git如何查看提交历史?

  1. git log --oneline //查看提交历史简洁版本
    
  2. git log --reverse --oneline //逆向查看
    
  3. git log --author=Linus --oneline -5 //查看Linux用户的操作
    
  4. git blame README //查看一个文件的全部过程
    

实践出真知!

尝试了才知道实践的重要性,推荐新建一个文件夹,用git创建一个本地仓库,每步操作后到不同的分支下ls,看看有什么变化。光看理论确实没有动手效果更好。

  1. git init后不会生成master分支,commit后才有!和菜鸟教程上说的似乎有点出入~
  2. 不论在主分支master还是从分支test创建文件,另一个分支都会做同样的事情
  3. 谁commit保留谁的文件,删除另一个分支中本次提交的文件。如:在test中commit,test保留此次提交的文件,master中相应文件删除。终于解释了:每个分支代表一条开发线,必须commit!

报错

fatal: pathspec ‘text1.txt’ did not match any files

先更新本地仓库

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【k8s完整实战教程4】使用kubesphere部署项目到k8s

系列文章:这个系列已完结,如对您有帮助,求点赞收藏评论。 读者寄语:再小的帆,也能远航! 【k8s完整实战教程0】前言【k8s完整实战教程1】源码管理-Coding【k8s完整实战教程2】腾讯云搭建k8s托管集群【k8s完…

SSM学习记录4:SSM整合(注释方式 + SprigMVC项目 + 2022发布版本IDEA)

SSM整合 整合中Tomcat等配置与前面学习相同 注:SpringMvcConfig里扫描的用Configuration注解的组件可以装载SpringConfig里扫描的组件,而SpringMvc不可以装载SpringMvcConfig里扫描的组件,相同配置类中扫描的组件可以相互装载 1.添加依赖↓ …

PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable论文学习

一、大纲内容 二、详细内容 Abstract ○ 对话生成模型可以用于闲聊、知识对话、对话问题生成 ○ 本文 ■ 构建了一个灵活的attention机制,充分的促进了单向和双向的语言生成模型 ■ 介绍了一个离散的潜变量,较好的解决了一问多答的问题 ■ 上述两个结构…

DAY 36 文本处理命令awk

awk的概述 awk: 在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本, 默认以空格或tab键作为分隔符作为分隔,并按模式或者条件执行编辑命令 awk信息的读入也是逐行指定的匹配模式进行查找&#x…

Unity ——使用贝塞尔曲线对三维管状物体进行弯曲

参考链接:【Unity】弹性鱼竿简单实现-通过贝塞尔曲线修改Mesh - 简书 参考论文:吴晓亮, 黄襄念. Unity 中使用贝塞尔曲线对三维物体进行弯曲[J]. 现代计算机, 2016 (5): 57-59. unity项目下载:https://download.csdn.net/download/weixin_4…

时间序列 | MATLAB实现CNN-GRU-Attention时间序列预测

时间序列 | MATLAB实现CNN-GRU-Attention时间序列预测 目录时间序列 | MATLAB实现CNN-GRU-Attention时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 MATLAB实现CNN-GRU-Attention时间序列预测,CNN-GRU结合注意力机制时间序列预测。 模型描…

涨点技巧:卷积变体DCNV2引入Yolov8,助力小目标涨点

1.DCN V2介绍 DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems 论文:https://arxiv.org/abs/2008.13535 作者通过在DCN的基础上,增加了2个创新点,分别是调制模块和使用多个调制后的DCN模块,从形成了DCN的升级版…

解码营养行业新趋势 2023晶球益生菌与肠内营养健康高峰论坛圆满落幕

后疫情时代,国人自身健康管理意识日益提高,越来越多的人认识到到微生物组、营养吸收与免疫健康的密切联系,并逐渐认可微生态和肠内营养在临床应用过程中的积极作用,使得营养治疗研究成果进一步落地转化。消费升级新时代&#xff0…

一文带你读懂,这三个交换机层级的区别和联系。

01 第二层交换机 OSI参考模型的第二层叫做数据链路层,第二层交换机通过链路层中的MAC地址实现不同端口间的数据交换。 第二层交换机主要功能,就包括物理编址、错误校验、帧序列以及数据流控制。 因为这是最基本的交换技术产品,目前桌面型交…

CDN到期不想续费?!MINIO救个场!

一、安装MINIO 下载 wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230413030807.0.0.x86_64.rpm -O minio.rpm 安装 yum install minio.rpm 二、启动 MinIO 服务器 创建启动实例目录 mkdir ~/minio 启动 MInIO实例 minio server ~/minio -…

解析hash(散列)数据结构

前言 在学习完map、set这两个由红黑树构成的容器后,我们来到了这里hash,首先我们要有一个基础的认知——哈希和map与set的仅在使用时的差别区别:前者内部的元素没有序,而后者有序,其它的都相同,这里我们可…

【C++进阶之路】第一篇:C++中的继承

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【C学习与应用】 ✒️✒️本篇内容:继承的基础概念,定义方法,基类和派生类的转换,继承中类的作用域&#xf…

VSCode配置React Native调试环境

首先,用VSCode打开新建的react native工程,此时只能运行,是无法调试的。如果想单步调试代码,需要配置。 点击VSCode左边三角形菜单: 点击“创建launch.json文件”, 选择“React Native”调试器,…

肖 sir_就业课__011性能测试讲解

性能测试讲解 一、你做过性能测试吗? 方法1:做过 方法2:在公司中性能测试有专门的性能小组做,但是我也会做性能 二、性能测试有哪些类型? 1)压力测试(破坏性测试) 压力测试是系统在一…

WiFi协议曝安全漏洞:Linux、Android和iOS未能逃脱

来自美国东北大学和鲁汶大学的学者披露了一组IEEE 802.11 Wi-Fi协议标准的一个基础设计漏洞,影响到运行Linux、FreeBSD、Android和iOS的各种设备。 来自美国东北大学和鲁汶大学的学者披露了一组IEEE 802.11 Wi-Fi协议标准的一个基础设计漏洞,影响到运行L…

【C++核心】内存、引用、函数

一、内存四区域 C程序在执行时,将内存大方向划分为4个区域 程序运行前分为: 代码区:存放函数体的二进制代码exe,由操作系统进行管理的 exe机器指令、共享、只读 全局区:存放全局变量和静态变量以及常量(字…

运行时内存数据区之虚拟机栈——操作数栈

操作数栈 每一个独立的栈帧中除了包含局部变量表以外,还包含一个后进先出(Last-In-First-Out)的操作数栈,也可以称之为表达式栈(Expression Stack)。操作数栈,在方法执行过程中,根据字节码指令,往栈中写入数据或提取数…

Netty缓冲区ByteBuf源码解析

在网线传输中,字节是基本单位,NIO使用ByteBuffer作为Byte字节容器, 但是其使用过于复杂,因此Netty 写了一套Channel,代替了NIO的Channel ,Netty 缓冲区又采用了一套ByteBuffer代替了NIO 的ByteBuffer &…

微服务+springcloud+springcloud alibaba学习笔记【OpenFeign的使用】(5/9)

OpenFeign的使用 5/91、OpenFeign简介1.1、Feign及OpenFeign概念和作用1.2、Feign和OpenFeign区别2、OpenFeign使用步骤2.1、创建Feign消费端微服务2.2、修改POM文件配置2.3、编写yml配置文件2.4、编写主启动类2.5、编写业务类2.5.1、编写 service 层接口,用于服务提…

什么是线性回归?线性回归有什么特征?

什么是线性回归 线性回归定义与公式 线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。 特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归 线…