Git工作中常用命令

模拟一个git完整命令流程

有一个名为 example.txt 的文本文件

Hello, this is some text.

1、做一些修改并查看文件的差异:

# 修改 example.txt 文件
echo "Hello, this is some updated text." > example.txt

查看文件的差异

git diff

git diff 命令将显示你修改的内容,类似于:

diff --git a/example.txt b/example.txt
index 08f1df5..82ea587 100644
--- a/example.txt
+++ b/example.txt
@@ -1 +1 @@
-Hello, this is some text.
+Hello, this is some updated text.

2、暂存修改并再次查看差异

暂存修改单个文件
git add example.txt`暂存修改全部文件命令
git add ./

查看暂存区与最新提交(HEAD)之间的差异

# 查看暂存区与最新提交(HEAD)之间的差异
git diff --staged

显示如下内容:

diff --git a/example.txt b/example.txt
index 08f1df5..82ea587 100644
--- a/example.txt
+++ b/example.txt
@@ -1 +1 @@
-Hello, this is some text.
+Hello, this is some updated text.

3、提交修改并查看提交历史

# 提交修改
git commit -m "Update example.txt with new text"# 查看提交历史
git log --oneline

显示

cfc3e85 (HEAD -> main) Update example.txt with new text
6d68a12 Initial commit

4、git revert 撤回提交

使用 git revert 撤销最新的提交,需要vi编辑撤回的注释

# 使用 git revert 撤销最新的提交
git revert HEAD# 确认撤销后的提交信息,按 i 进入编辑模式,输入撤销提交的注释信息,然后按 Esc,输入 :wq 保存退出。

Git 将创建一个新的提交,该提交会撤销之前的提交。你可以在 git revert 后编辑提交信息,如果不需要更改,默认会使用撤销提交的注释信息。

查看撤销提交后的提交历史和文件内容:

# 查看提交历史
git log --oneline

显示:

81c40b1 (HEAD -> main) Revert "Update example.txt with new text"
cfc3e85 Update example.txt with new text
6d68a12 Initial commit

查看文件

# 查看 example.txt 文件内容
cat example.txt

显示文件已经撤回

Hello, this is some text.

还可以使用 git reset 命令进行撤回,详情介绍在5

5、commit后不需要撤回,直接push

Git push

如果要撤回push的代码

撤销上次提交
git revert HEAD 
撤回指定的hash)
git revert e3fa6b3  

撤销后,需要重新git push

# 查看提交历史
git log --oneline

查看提交历史,可以看到撤回的记录

6、git reset 撤回销命令

git reset 是不会保留提交历史记录的,git revert是有完整记录的

1、保留修改内容在暂存区

回退到哪个hash
git reset --soft  hash值
git reset --soft 模式下,
执行 git reset --soft HEAD^ 
可以撤销上一个 commit,并保留修改内容在暂存区(staging area)。
这意味着之前的 commit 中的修改将回到暂存区,你可以修改这些代码并重新提交,将修改后的代码作为一个新的 commit 提交

2、不保留修改内容在暂存区(git reset 或 git reset --mixed)

git reset 或 git reset --mixed 模式下,
执行 git reset HEAD^ 或者简写成 git reset HEAD~1,
可以撤销上一个 commit,并将更改内容退回到工作目录(working directory),不保留在暂存区。这意味着之前的 commit 中的修改将回到工作目录,并不在暂存区,你可以对代码进行修改,并重新选择要暂存的更改,然后使用 git add 将更改添加到暂存区,再次进行 commit。

选择建议:

如果你需要撤销已经推送到远程仓库的提交,并且希望保持仓库的一致性,应该使用 git revert。

如果你需要撤销未推送的提交或者回退到之前的状态,并且明确了操作的影响,可以使用 git reset。

但请注意,git reset 可能会修改历史记录,所以要谨慎操作。

7、git merge

如果确保没有冲突,可以直接使用该命令merge最新代码到对应分支
**注意:**如果有冲突或冲突过多,建议使用可视化文件对比idea工具,进行merge,并在可视化文件对比中进行冲突的解决。

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

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

相关文章

【【51单片机红外遥控小风车】】

51单片机红外遥控小风车 今天结束了51单片机的学习,明天开始学习stm32 我是学习江科大的视频一步一步完成的 ,他讲的非常好,非常好 特别通俗易懂 学习复刻他的作品我也自己创作了一些 但是现在暂时脱离这块板子了 以后可能会更新一个应用51单…

ffmpeg最简单方式支持nvidia硬编解码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、nvidia硬编解码是什么?二、使用步骤1.安装2.确认1.硬件解码器2.硬件编码器 3.测试 总结 前言 因为工作内容的需要,之前写过一篇文章…

使用SVM模型完成分类任务

SVM,即支持向量机(Support Vector Machine),是一种常见的机器学习算法,用于分类和回归分析。SVM的基本思想是将数据集映射到高维空间中,在该空间中找到一个最优的超平面,将不同类别的数据点分开…

Jsp+Ssh+Mysql实现的简单的企业物资信息管理系统项目源码附带视频指导运行教程

由jspssh(springstruts2mysql)实现的企业物资信息管理系统,系统功能比较简单,实现了基本的管理员、操作员等用户管理、物品分类管理、物品管理、入库管理、出库管理、库存预警、客户管理、供应商管理等基本功能需要的可以联系我分…

接口参数设计原则

1. 不能太动态. 不相信客户端的原则 例如传递 filterFields , 推送一个表的某些字段给上游. 2. 可以服务端提供一些封装. 这个封装可以是写死的组合, 也可以是后端配置的. 最好的是 代码里的领域类bean 1,1对应一个名称. 可以是 classReference. 运营态有很多字段是给用户看的…

SpringMVC路径匹配

SpringMVC路径匹配 SpringMVC支持Ant风格的路径 Ant是Apache下的一个构建(编译、测试、部署等)工具。即Ant风格源于Ant这个构建工具。 关于如何配置SpringMVC的各种配置文件和其中的注解使用可以参考 种类 1、?:表示任意的单个字符 controller RequestMapping…

[JavaWeb]SQL介绍-DDL语句

SQL介绍-DDL语句 一.SQL简介1.简介2.SQL通用语法3.SQL语言的分类 二.DDL-操作数据库与表1.DDL操作数据库2.DDL操作表①.查询表(Retrieve)②.创建表(Create)③.修改表(Update)④.删除表(Delete) 一.SQL简介 1.简介 SQL: Structured Query Language–结构化查询语言用来操作关系…

prometheus和cAdvisor组合

文章目录 docker内部署PromethuesPrometheuscAdvisorPrometheus和cAdvisor关系配置 docker内部署Promethues Prometheus Prometheus是一个开源的系统监控和报警工具,由SoundCloud开发并在2012年捐赠给了Cloud Native Computing Foundation (CNCF)。它被广泛用于监…

打卡一个力扣题目

目录 一、问题 二、解题办法一 三、解题方法二 四、对比分析 关于 ARTS 的释义 —— 每周完成一个 ARTS: ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: 分享一篇有观点…

视频转化为图片或灰度视频

1.视频转化为图片 import cv2video_pathr"D:\Dataset\video/7.mp4" capturecv2.VideoCapture(video_path) # print(capture.get(5))if capture.isOpened():ret,imgcapture.read()index0while ret:if index%200:imgidr"D:\Dataset\image/6/""%07d&quo…

dataTable转成对象、json、list

datatable转换成list集合 public static T TableToEntity<T>(DataTable dt, int rowindex 0, bool isStoreDB true){Type type typeof(T);T entity Activator.CreateInstance<T>();if (dt null){return entity;}DataRow row dt.Rows[rowindex];PropertyInfo…

List中交集的使用

前言 新增了一个需求&#xff0c;需要将所有药品和对应数量库存的药房查询出来&#xff0c;要求&#xff1a;‘所有药品该药房都要有&#xff0c;并且库存大于购药数量’&#xff1b; 这就得考虑一个问题&#xff0c;有的药房有该药品&#xff0c;有的药房没有该药品&#xf…

前端常用的条件限制方法小笔记

手机号的正则表达式(以1开头的11位数字) function checkPhone(){ var phone document.getElementById(phone).value;if(!(/^1[3456789]\d{9}$/.test(phone))){ alert("手机号码有误&#xff0c;请重填"); return false; } }限制输入大于0且最小值要小于最大值 c…

php项目内存飚高处理与优化

公司服务器最近内存占用超过阈值一直报警 经过排查,内存占用很多&#xff0c;剩余很少 free -m 排查代码无太多冗余和缓存 最后和运维一起排查&#xff0c;发现宝塔安装后带的gitlab的进程很吃内存&#xff0c;赶紧停用&#xff0c;并卸载无用的软件 最后内存降下来了

16.Netty源码之ChannelPipeline

highlight: arduino-light 服务编排层:ChannelPipeline协调ChannelHandlerHandler EventLoop可以说是 Netty 的调度中心&#xff0c;负责监听多种事件类型&#xff1a;I/O 事件、信号事件、定时事件等&#xff0c;然而实际的业务处理逻辑则是由 ChannelPipeline 中所定义的 Cha…

Vue-Router基本使用

1 安装&#xff1a; vue2项目要安装vue-router3版本 npm i vue-router3 2 src下创建router目录&#xff0c;router文件夹下创建index.js 在vue.config.js中 配置src路径别名 3 在main.js中引入 4 在app.vue中配置 5 即可看到内容

Elasticsearch 常用 HTTP 接口

本文记录工作中常用的关于 Elasticsearch 的 HTTP 接口&#xff0c;以作备用&#xff0c;读者也可以参考&#xff0c;会持续补充更新。开发环境基于 Elasticsearch v5.6.8、v1.7.5、v2.x。 集群状态 集群信息 1 2 3 4 5 6 7http://localhost:9200/_cluster/stats?pretty http…

okhttp原理分析

工程目录图 请点击下面工程名称&#xff0c;跳转到代码的仓库页面&#xff0c;将工程 下载下来 Demo Code 里有详细的注释 01okhttp module里 包含的设计模式&#xff1a;建造者设计模式、责任链设计模式 CustomInject 演示自定义注解 代码&#xff1a;okhttp原理分析、Andro…

掌握Python的X篇_13_Python条件语句实例:判断闰年、成绩评定

前面学习了条件语句以及调试的基本技巧&#xff0c;本篇介绍两个与条件语句有关的实例&#xff0c;对前面的知识又深刻认识。 文章目录 1. 判断闰年1.1 版本11.2 版本21.3 一行代码太长的处理方法 2. 根据成绩评级 1. 判断闰年 用户输入年份&#xff0c;判断该年份是否为闰年…

Perl:命令行参数的处理

相关阅读 Perl&#xff1a;正则表达式 Perl&#xff1a;什么是其特有的autovivafacation性质&#xff1f; Perl&#xff1a;匿名数组嵌套的解引用相关问题 命令行参数是shell和perl交互的一个重要媒介&#xff0c;本文介绍了如何在Perl中对命令行参数进行处理。 首先我们给出…