git操作(二)

news/发布时间2024/5/15 22:36:03

之前我们对于git已经有了一定的了解,现在我们学习一些关于git的新内容。

一.修改⽂件

首先,我们先来认识一个命令:

git status
//⽤于查看在你上次提交之后是否有对⽂件进⾏再次修改,注意指的是仓库和工作区对比

关于三区的内容,上一篇文章已经讲过了,这里我们就简单介绍下:

工作区:是指自己编写内容的位置

暂存区:是指将工作区内容通过git add暂时保存的位置

版本区:即本地仓库位置

接下来我们再来认识几个新的命令:

git diff [file];
//表示显⽰暂存区和⼯作区⽂件的差异
git diff HEAD -- [file];
//命令来查看版本库和⼯作区⽂件的区别
git log
//表示查看日志

通过上面的指令,我们就可以简单查看三区的对比信息了。

二.版本回退

Git能够管理⽂件的历史版本,这也是版本控制器重要的能⼒,现在我想要曾经写过的某个版本。怎么办?
 

git reset --soft +HEAD;
//参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本git reset --mixed +HEAD;
//为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内容,⼯作区⽂件保持不变git reset --hard +HEAD;
//参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命
//令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重

补充知识:

HEAD 说明:
可直接写成commit id,表⽰指定退回的版本
HEAD表⽰当前版本
HEAD^上⼀个版本
HEAD^^上上⼀个版本

可以使⽤〜数字表⽰:
HEAD~0表⽰当前版本
HEAD~1上⼀个版本
HEAD~2上上⼀个版本

 

重点:

git reflog;
//该命令⽤来记录本地的每⼀次命令

该命令可能可以补救下自己的某次错误操作。

git --version;
//查看git版本

三.撤销修改

情况⼀:对于⼯作区的代码,还没有 add:

对于该情况,我们当然可以直接删除想去掉的内容即可,但是如果内容过多,还是要学习常规操作的。

git checkout -- [file];
//注意:命令中的-- 很重要,切记不要省略,⼀旦省略,该命令就变为其他意思。
//该命令表示恢复到上⼀次 add 或 commit
//实际上只改变工作区


情况⼆:已经 add ,但没有 commit:
操作如下:

git reset --mixed HEAD [file];
git reset --hard HEAD [file];//回到了情况一
git checkout -- [file];

情况三:已经 add ,并且也 commit 了:

该部分比较特殊:

这是有条件的,就是你还没有把⾃⼰的本地版本库推送到远程,否则,是不行的。
 

git reset --hard HEAD^ [file];
//
git checkout --[file];

四.删除⽂件

在Git中,删除也是⼀个修改操作.

git删除有两种可能:
1.确实要从版本库中删除该⽂件

git rm file;

将⽂件从暂存区和⼯作区中删除,并且commit.

2.不⼩⼼删错了
对第⼆种情况,很明显误删,需要使⽤ git 来进⾏恢复

操作如下:

//该操作其实其实就是回退操作
//等同于情况二
git reset --mixed HEAD [file];
git checkout --file;


 

最后,bye!

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

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

相关文章

Spring中常见的注解

1 spring注解介绍 Spring Framework是一个开源的Java平台,广泛用于创建高性能的企业应用程序。随着Spring的发展,注解(Annotation)已经成为了配置Spring应用程序的主要方式,逐渐取代了传统的XML配置。使用注解可以使代…

9、使用 ChatGPT 的 GPT 制作自己的 GPT!

使用 ChatGPT 的 GPT 制作自己的 GPT! 想用自己的 GPT 超越 GPT ChatGPT 吗?那么让我们 GPT GPT 吧! 山姆 奥特曼利用这个机会在推特上宣传 GPTs 的同时还猛烈抨击了埃隆的格罗克。 GPTs概览 他们来了! 在上周刚刚宣布之后,OpenAI 现在推出了其雄心勃勃的新 ChatGPT…

开源数据可视化应用程序JSON Crack

什么是 JSON Crack ? JSON Crack 是一款免费的开源数据可视化应用程序,能够将 JSON、YAML、XML、CSV 等数据格式可视化为交互式图表。凭借其直观且用户友好的界面,JSON Crack 可以轻松探索、分析和理解即使是最复杂的数据结构。无论您是从事大…

数据结构--排序

数据结构--排序 1. 各类排序算法的性质2. 插入排序2.1 直接插入排序2.2 折半插入排序 3. 希尔排序4. 交换排序4.2 冒泡排序 5. 快速排序6. 选择排序6.1 简单选择排序6.2 堆排序 7. 归并排序8. 基数排序 1. 各类排序算法的性质 2. 插入排序 2.1 直接插入排序 2.2 折半插入排序 …

openai公司的chatgpt-3.5参数库内还未增加sora的语料信息

openai公司的chatgpt-3.5参数库内还未增加sora的语料信息!我想通过openai公司的chatgpt3.5来了解一下关于sora的技术信息,结果呢,它竟然回答不知道sora是什么。看来,sora的语料库信息还未来得及加入chatgpt3.5的训练模型中。 如图…

vue的十大面试题详情

1 v-show与v-if区别 v-if与v-show可以根据条件的结果,来决定是否显示指定内容&#xff1a; v-if: 条件不满足时, 元素不会存在. v-show: 条件不满足时, 元素不会显示(但仍然存在). <div id"app"><button click"show !show">点我</but…

计算机视觉基础【OpenCV轻松入门】:获取图像的ROI

OpenCV的基础是处理图像&#xff0c;而图像的基础是矩阵。 因此&#xff0c;如何使用好矩阵是非常关键的。 下面我们通过一个具体的实例来展示如何通过Python和OpenCV对矩阵进行操作&#xff0c;从而更好地实现对图像的处理。 ROI&#xff08;Region of Interest&#xff09;是…

【Spring】循环依赖

目录标题 什么是循环依赖循环依赖场景Java SE 演示Spring 容器演示三级缓存核心知识三级缓存四大方法三级缓存中的迁移 三级缓存源码分析源码思维导图 源码图例课前问题推荐阅读 循环依赖是什么&#xff1f;循环依赖的场景有哪一些&#xff1f;三级缓存分别是什么&#xff1f;三…

HarmonyOS4.0系统性深入开发34栅格布局(GridRow/GridCol)

栅格布局&#xff08;GridRow/GridCol&#xff09; 概述 栅格布局是一种通用的辅助定位工具&#xff0c;对移动设备的界面设计有较好的借鉴作用。主要优势包括&#xff1a; 提供可循的规律&#xff1a;栅格布局可以为布局提供规律性的结构&#xff0c;解决多尺寸多设备的动态…

HarmonyOS4.0系列——08、整合UI常用组件

HarmonyOS4.0 系列——08、UI 组件 Blank Blank 组件在横竖屏占满空余空间效果 // xxx.ets Entry Component struct BlankExample {build() {Column() {Row() {Text(Button).fontSize(18)Blank()Toggle({type: ToggleType.Switch}).margin({top: 14,bottom: 14,left: 6,righ…

多线程相关(1)

线程调度 线程状态&#xff1a;状态切换阻塞与唤醒阻塞唤醒 wait 与 sleep创建线程方式 线程是cpu任务调度的最小执行单位&#xff0c;每个线程拥有自己独立的程序计数器、虚拟机栈、本地方法栈。 线程状态&#xff1a; 线程状态包括&#xff1a;创建、就绪、运行、阻塞、死亡…

ipad作为扩展屏的最简单方式(仅需在同一局域网下,无需数据线)

ipad和win都下载安装toDesk&#xff0c;并且都处于同一局域网下 连接ipad&#xff0c;在ipad中输入win设备的设备密码和临时密码&#xff0c;连接上后可以看到ipad会是win屏幕的镜像&#xff0c;此时退出连接&#xff0c;准备以扩展模式再次连接。 注意&#xff0c;如果直接从…

Java 正则表达式 Pattern类和Matcher类

java.util.regex包主要包括三个类&#xff1a; PatternMatcherPatternSyntaxExcepiton Pattern类 Pattern对象是一个正则表达式对象。Pattern类没有公共的构造方法。要创建一个Pattern对象&#xff0c;需要调用其公共静态方法。该方法接收一个正则表达式作为它的第一个参数。…

七、MyBatis-Plus高级用法:最优化持久层开发

目录 一、MyBatis-Plus快速入门 1.1 简介 1.2 快速入门 二、MyBatis-Plus核心功能 2.1 基于Mapper接口CRUD Insert方法 Delete方法 Update方法 Select方法 自定义和多表映射 2.2 基于Service接口CRUD 对比Mapper接口CRUD区别&#xff1a; 使用Iservice接口方式 CRUD方…

[嵌入式系统-32]:RT-Thread -17- 任务、进程、线程的区别

目录 一、基本概念澄清 1.1 任务 1.2 进程 1.3 线程 1.4 比较 1.5 任务VS进程 1.6 进程 VS 线程 1.7 任务 进程 线程 发展历史 任务&#xff08;Task&#xff09;&#xff1a; 进程&#xff08;Process&#xff09;&#xff1a; 线程&#xff08;Thread&#xff09;…

MAC VSCODE g++编译器无法编译C++11语法的 解决办法(CodeRunner版本)

如果你是使用的 codeRunner 这个插件&#xff0c;就是这个按钮 coderunner的原理大致是&#xff1a;先判断你这是什么语言&#xff0c;然后有一个 code-runner.executorMap 来对应各个语言是用什么执行语句 我发现&#xff0c;我修改之前&#xff08;无法执行C11语法的原因是&a…

SQL笔记-多表查询(合并记录新增字段)

比如要统计2张表的所有数据&#xff0c;这两张表无关联关系&#xff0c;统计的数据需要在同一行&#xff1a; SELECT (SELECT COUNT(*) FROM reptile_csdn_article) AS table1_count, (SELECT COUNT(*) FROM reptile_tag_type) AS table2_count 运行截图如下&#xff1a; 大于…

Flink join详解

Flink SQL支持对动态表进行复杂而灵活的连接操作。 为了处理不同的场景&#xff0c;需要多种查询语义&#xff0c;因此有几种不同类型的 Join。 默认情况下&#xff0c;joins 的顺序是没有优化的。表的 join 顺序是在 FROM 从句指定的。可以通过把更新频率最低的表放在第一个、…

PyCharm - Script parameters (脚本参数)

PyCharm - Script parameters [脚本参数] References Run -> Edit Configurations… -> Run/Debug Configurations -> Configuration -> Script parameters 命令行&#xff1a; python display_yolo_log.py ./person_training_log/person_train_log_DIMM40_stdout…

力扣题目训练(17)

2024年2月10日力扣题目训练 2024年2月10日力扣题目训练551. 学生出勤记录 I557. 反转字符串中的单词 III559. N 叉树的最大深度241. 为运算表达式设计优先级260. 只出现一次的数字 III126. 单词接龙 II 2024年2月10日力扣题目训练 2024年2月10日第十七天编程训练&#xff0c;今…
推荐文章