阐述 Git 命令 reset 和 revert

2024-04-26 07:20
文章标签 命令 reset git 阐述 revert

本文主要是介绍阐述 Git 命令 reset 和 revert,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 概述

由于某次或某几次提交的代码污染了远程分支,需要对远程分支代码进行恢复操作,此时可以通过 git 的 reset 和 revert 命令进行恢复。

HEAD 是指向当前分支的最新提交的指针 ,每一次提交代码都会产生一个 commit id 来标识工作区的变更与改动。

2 Git Reset

git reset 的作用是将分支代码回滚到指定版本(即指定的代码提交点)上。

步骤:

(1)使用 “git log” 命令查看当前分支的提交记录。

(2)使用 “git reset --hard 某次提交的 commit id” 命令将本地的 HEAD 指向指定的版本上。

再次使用 “git log” 命令提交记录,确认本地分支的 reset 操作是否成功了。

(3)使用 “git push -f” 命令强行将变动推送到远程分支上,使远程分支的 HEAD 指向指定的版本上。

3 Git Revert

git revert 是用来删除某一次提交的内容。我们会发现在分支上面创建了一个新的 commit 提交。

步骤:

(1)使用 “git log” 命令查看当前分支的提交记录。

(2)使用 “git revert 某次提交的 commit id” 命令来删除某一个 commit 提交的内容。

当前版本与需要删除的版本之间有其他提交内容时,当都修改了同一个文件时,可能需要手动解决冲突。

(3)将本地变动推送到远程分支上。

4 总结

git reset 和 git revert 都是属于重新恢复工作区的方式,但这两种操作有着截然不同的结果:

(1)git reset 是将当前版本与指定版本之间的所有历史提交日志和提交内容全部删掉,将 HEAD 指向自己指定的提交版本,即回滚到指定版本。

(2)git revert 是只将指定的某次提交内容删除掉,不会删除历史提交日志。

如果当前版本与指定版本之间有其他提交内容时,其他提交内容和历史提交记录都不会被删除。

当指定版本与其他提交内容都修改了同一个文件时,可能需要手动解决冲突。

5 参考文献

(1)https://www.modb.pro/db/137424

这篇关于阐述 Git 命令 reset 和 revert的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Git如何修改已提交人的用户名和邮箱

《Git如何修改已提交人的用户名和邮箱》文章介绍了如何修改Git已提交人的用户名和邮箱,包括注意事项和具体步骤,确保操作正确无误... 目录git修改已提交人的用户名和邮箱前言第一步第二步总结git修改已提交人的用户名和邮箱前言需注意以下两点内容:需要在顶层目录下(php就是 .git 文件夹所在的目

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的