git操作(二)

之前我们对于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.mzph.cn/news/691507.shtml

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

相关文章

如何有效利用API接口进行数据采集

在当今数字化的世界中,API(应用程序编程接口)作为数据交换的桥梁,对于电商企业来说尤为重要。它们允许企业从丰富的数据源中提取必要的信息,为商业决策提供数据支持。本文将围绕如何高效地利用API进行数据采集展开讨论…

实际生产中的一次非典型的基于jmeter的接口自动化实践

实际工作中遇到过一次自动化巡检的需求,作为测试人员没法从源代码入手,加之数据库也不熟悉,故采取接口自动化的方式来实现巡检,算是一种歪门邪道吧,应该不是接口自动化的常规使用方式。jmeter在这里的作用实际上也只是…

docker安装一系列镜像

启动docker systemctl start docker docker 启动已经停止的容器 docker start idOrName PS:idOrName为容器的id或者名称 1、安装mysql镜像 拉取mysql5.7的镜像 docker pull mysql:5.7 查看镜像 docker images 启动mysql #启动mysql docker run --name mysql…

云呐电网智能运维包含哪些?智能运维都有哪些框架

电网智能运维是一个复杂的系统,包括多种技术和方法,为提升电力系统的效率和稳定性。以下是你提出的问题的实际答案: 网络智能运维的核心技术与应用: 故障检测:根据实时监测和数据分析,对电网中的故障进行快速、准确的…

C++递归复习3

输出n~1的整数 #include<bits/stdc.h> using namespace std; int n; void f(int); int main() {cin>>n;f(n);return 0; } void f(int n){if(n0) return;cout<<n<<endl;f(n-1); }求10097......41的值 #include<bits/stdc.h> using namespace st…

k8s容器以及基础设施优化

1.硬件系统选型&#xff1a;宿主机通用配置16c/32GB/4网卡队列 2.os优化&#xff1a;单机支持百万tcp并发&#xff0c;/etc/sysctl.conf,/etc/security/limits.conf 3.k8s&容器层优化&#xff1a;性能优化initContainer 4.kube-dns优化&#xff1a;增大--cache-size,设置…

LabVIEW读取excel日期

LabVIEW读取excel日期 | Excel数据表格中有日期列和时间列&#xff0c;如下表所示&#xff1a; 通过LabVIEW直接读取Excel表格数据&#xff0c;读出的日期列和时间列数据与原始表格不一致&#xff0c;直接读出来的数据如下表所示&#xff1a; 日期、时间列数据异常 问题产生原因…

VBA:批量复制sheet内指定内容

VBA. 批量复制sheet内指定内容 背景&#xff1a;一个excel内有包含0-18序号的Sheet&#xff0c;需要将1-18的sheet内包含标准差的行复制到sheet”0“中。 方法&#xff1a; 从1-18遍历sheet&#xff0c;找到单元格值为”标准差“的行&#xff0c;然后&#xff08;仅复制值&a…

docker安装milvus后,无法打开attu,日志报错

背景&#xff0c;在虚拟机用docker安装milvus后&#xff0c;正常访问attu&#xff0c;过段时间挂机后无法访问 日志报错&#xff1a; [2024/02/19 06:59:46.761 00:00] [ERROR] [grpcclient/client.go:330] ["ClientBase ReCall grpc second call get error"] [rol…

ThreadLocal(4):ThreadLocal的核心方法源码

基于ThreadLocal的内部结构&#xff0c;我们继续分析它的核心方法源码&#xff0c;更深入的了解其操作原理。 除了构造方法之外&#xff0c; ThreadLocal对外暴露的方法有以下4个&#xff1a; 方法声明描述protected T initialValue()返回当前线程局部变量的初始值public voi…

Linux下多核CPU指定程序运行的核

设置程序在指定CPU核心运行 一、如何查看程序运行的CPU信息 1.1 查看当前系统CPU有几个核心 查看CPU核心数量&#xff1a;lscpu 1.2 查看程序的PID ps aux|grep cpu_test1.3 查看程序可运行的CPU taskset -c -p pid1.4 设置程序在指定核心上运行 1.4.1 通过运行时的参数设…

C语言代码 递归实现n的k次方

递归实现n的k次方 代码示例&#xff1a; #include <stdio.h>double Pow(int n, int k) {if (k > 0){return n * Pow(n, k - 1);}else if (0 k){return 1;}else{return 1.0 / pow(n, -k);} } int main() {int n 0;int k 0;scanf("%d %d", &n, &…

[工具探索]VSCode介绍和进阶使用

相比较GoLand、PhpStorm、PyCharm、WebStorm的重量级内存占用&#xff0c;从Windows系统来&#xff0c;各种卡死&#xff0c;换到MacOS倒不会卡死&#xff0c;但是内存占用太多&#xff0c;影响体验&#xff0c;决定换到VSCode。当然这个过程需要适应过渡期&#xff0c;旧伙计都…

电脑文件误删除如何恢复?2024最新三种恢复方法

我们在使用电脑的过程中&#xff0c;随着时间的不断推移&#xff0c;渐渐的我们会发现C盘内存空间不足了。这是因为我们很多文件都默认存储在C盘&#xff0c;所以导致C盘空间不足&#xff0c;电脑运行越来越慢。那么电脑哪些文件可以删除&#xff0c;电脑删除的东西怎么恢复&am…

Vue:Vuex模块化编码(非常实用)

一、情景说明 通过前面的学习&#xff0c;我们知道&#xff0c;Vuex的核心文件就是indexc.js 这个文件里面&#xff0c;主要是四个对象 actions、mutations、state、getters 那么&#xff0c;随着业务的复杂化&#xff0c;所有的逻辑都写在一个actions里面吗&#xff1f; 显然…

【Mybatis】TypeHandler使用

引言 在使用MyBatis进行项目开发时&#xff0c;我们经常会遇到Java类型与数据库类型不匹配的情况。为了解决这一问题&#xff0c;MyBatis提供了一个强大的机制——TypeHandler。TypeHandler是MyBatis中一个用于处理Java类型和数据库类型转换的组件&#xff0c;它在MyBatis进行…

【微信小程序讲解——必看】

微信小程序详细介绍 1. 微信小程序2. 基本概念3. 开发方式4. 特点5. 功能范围6. 使用场景7. 用户界面8. API支持9. 安全与隐私10. 上线流程11. 运营规则 1. 微信小程序 微信小程序是一种不需要下载安装即可使用的应用&#xff0c;它实现了应用“触手可及”的梦想&#xff0c;用…

There will be “7“ later: Interpretation of next-generation Wi-Fi technology

With the Wi-Fi Alliance announcing the launch of Wi-Fi 7-related certifications, we can also start talking about the new successor to Wi-Fi 6 three years after its launch. What is Wi-Fi 7? What benefits does it bring? These questions about Wi-Fi 7 will b…

Active Directory 的密码管理策略

员工使用的密码可以决定或破坏组织中的数据安全性&#xff0c;但是&#xff0c;知道员工通常不遵循良好的密码卫生习惯也就不足为奇了。从在本机工具&#xff08;如 Windows Active Directory 组策略&#xff09;中设置弱密码和通用密码到宽松的密码策略规则&#xff0c;有几个…

面试指南:C++之STL知识点

相关系列文章 面试指南&#xff1a;C之STL知识点 C内存分配策略 深入理解STL空间分配器(一): new_allocator 深入理解STL空间分配器(二)&#xff1a;mt_allocator 深入理解STL空间分配器(三)&#xff1a;pool_allocator深入理解STL空间分配器(四)&#xff1a;bitmap_allocator …