前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >git reset后如何返回最新版本_reset按钮无法恢复

git reset后如何返回最新版本_reset按钮无法恢复

作者头像
全栈程序员站长
发布于 2022-09-23 02:25:06
发布于 2022-09-23 02:25:06
2.3K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

2019/7/27 修改更新

一、问题描述

在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。

二、背景知识

git的版本管理,及HEAD的理解 使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况下会指向master,而master是指向最新提交)。每个版本都会有自己的版本信息,如特有的版本号、版本名等。如下图,假设只有一个分支:

三、解决方法

方法一:git reset

原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一:

适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

具体操作:

1. 查看版本号: 可以使用命令“git log”查看:

也可以在github网站上查看:

2. 使用“git reset –hard 目标版本号”命令将版本回退:

再用“git log”查看版本信息,此时本地的HEAD已经指向之前的版本:

3. 使用“git push -f”提交更改: 此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧:

所以我们要用“git push -f”强制推上去,就可以了:

在github图形化界面上看,远程库的HEAD也已经指向目标版本:

回退成功!

方法二:git revert

原理: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如下图所示:

适用场景: 如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。

具体操作:

举个例子,现在库里面有三个文件:READ.md、text.txt、text2.txt。

1. 查看版本号: 可以通过命令行查看(输入git log): 如图,最近的两个版本分别叫:“add text.txt”(即新增了文件text.txt)、“add text2.txt”(新增了文件text2.txt)。这个时候我们不需要text.txt这个文件了,那就是说不想要“add text.txt”那个版本的操作,那可以通过反做“add text.txt”这个版本来实现。

也可以通过github网站图形化界面查看版本号:

2.使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交: (1)反做,使用“git revert -n 版本号”命令。如下命令,我们反做版本号为8b89621的版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861

注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。 (2)提交,使用“git commit -m 版本名”,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git commit -m "revert add text.txt" 

此时可以用“git log”查看本地的版本信息,可见多生成了一个新的版本,该版本反做了“add text.txt”版本,但是保留了“add text2.txt”版本:

3.使用“git push”推上远程库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push

查看github上显示的远程库版本信息:

此时查看仓库的文件,剩下两个:READ.md、text2.txt

反做成功!

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171970.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
数据库系统概论之应用开发实验
制作背景:公司管理系统是一种重要的信息管理系统,用于管理和运营各种企业和组织。随着现代企业的发展和规模的扩大,对于员工和资源的管理变得越来越复杂和繁琐。为了提高企业的效率和管理水平,许多公司开始采用数据库系统来构建公司管理系统。
LucianaiB
2025/05/28
1270
数据库系统概论之应用开发实验
软件设计师之综合技能(一)
E-R图也称实体-联系图(Entity Relationship Diagram),主要包含三种成分:
muntainyang
2020/10/23
6600
软件设计师之综合技能(一)
订单模块数据库表解析(一)
本文主要对订单及订单设置功能的表进行解析,采用数据库表与功能对照的形式。 订单 相关表结构 订单表 订单表,需要注意的是订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单。 create table oms_order ( id bigint not null auto_increment comment '订单id', member_id bigint not null comment '会员
macrozheng
2019/07/22
2.2K0
订单模块数据库表解析(一)
基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现
餐馆点餐系统意味着用户可以在线订购、订购和支付配送的点餐系统。收到订单后,商家准备食物,送货,送货上门。
Designer 小郑
2023/08/01
7.9K2
基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现
Java数据库项目之满汉楼
src/com/hspedu/mhl/dao/DiningTableDAO.java
timerring
2023/05/24
6700
Java数据库项目之满汉楼
课程设计—飞机订票系统
基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。
全栈程序员站长
2022/07/02
1.6K0
课程设计—飞机订票系统
数据库系统概述——第七章 数据库设计(知识点复习+练习题)
本章主要考点:■数据库设计的6个步骤 、ER图合并出现的冲突与解决方法、■ER图转换成关系模式
命运之光
2024/03/20
4560
数据库系统概述——第七章 数据库设计(知识点复习+练习题)
数据库课程设计——学生宿舍信息管理系统
目录
全栈程序员站长
2022/08/31
5.4K0
数据库课设---酒店管理系统(MySQL、VBNet)
当在客房表中加入一条信息后显示“已占”表示有客户入住,当在客房表中删除一条信息后显示“已退”表示客户离开。
小灵蛇
2024/07/12
9990
数据库课设---酒店管理系统(MySQL、VBNet)
数据库课程设计
目前社会上信息管理系统发展飞速,越来越多的企业事业单位引入信息管理软件来管理自己日益增长的各种信息。各种网店也采用了不同的管理系统来管理商品信息,取得了很大的成效。网上书店管理系统也在功能上不但完善和加强,为了使书店管理更加规范化,程序化,科学化,我们研发了网上书店管理系统。
全栈程序员站长
2022/07/21
1.3K0
数据库课程设计
数据库课程设计 ——酒店管理系统「建议收藏」
(1)酒店管理系统用于满足酒店工作人员和管理人员的需求。 (2)酒店管理人员和工作人员可以为酒店房间加入入住和退房记录,并生成相应的报表用于查阅,确认和保存,酒店工作人员可以浏览、查询、统计、添加酒店房间的入住离开信息。管理员可以查询房间信息、查询员工信息、更改房间信息、更改员工信息等。 (3) 客户可以申请入住酒店,酒店工作人员需要对客户的姓名、性别、身份证号、房间号、入住时间、联系方式等信息进行记录,客户退房时进行退房记录。 4、管理员和员工可以通过姓名、入住日期、身份证号、房间号、联系方式等信息查询客户入住和离开情况。 从客户角度考虑业务流程如图1-1所示。
全栈程序员站长
2022/08/26
9.5K2
数据库课程设计 ——酒店管理系统「建议收藏」
MySQL数据库基础练习系列5、会员管理系统
很多学生或者说是初学者在学习完成数据库的基础增删改查后就自认为在数据库这里就很熟悉了,但是不接触项目根本部知道需求,我这里准备了50个项目的基本需求来让大家来熟练各类项目的列信息,让大家更好的深入项目进行实战式的练习,可以让大家在后面面试的时候有更多更丰富的资历让大家可以与面试官侃侃而谈。
红目香薰
2024/06/07
1440
数据库课程设计——火车票售票系统「建议收藏」
数据库课程设计的题目,设计了一个火车票售票系统,实现了列车信息查询,车票查询及购买,订单查询,个人信息管理等功能,数据是从12306爬取的真实数据。
全栈程序员站长
2022/08/31
3.1K0
数据库课程设计——火车票售票系统「建议收藏」
数据库系统:第七章 数据库设计
三分技术,七分管理,十二分基础数据。十二分基础数据强调了数据的收集、入库、更新维护是数据库建设中的重要环节。
Here_SDUT
2022/08/09
2.1K0
数据库系统:第七章 数据库设计
毕业设计So Easy:基于Java语言西餐厅点餐系统
很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......
不脱发的程序猿
2021/06/21
9840
毕业设计So Easy:基于Java语言西餐厅点餐系统
微信点餐的需求和技术演变
1-6是一期内容,神通交接前已完成。7-10是二期内容,属于后续功能扩充。11是待完成功能,12是附加的会员管理方面的功能。
职场亮哥
2020/10/10
1K0
微信点餐的需求和技术演变
数据库系统课程设计 --- 人事管理系统(超详细)
🔥 在看该文章之前,我希望大家能够从头慢慢看下去,而不是直接去复制代码,该 课程设计其实可以学到一些东西的,说不定以后也许能够用上来的
IsLand1314
2024/11/26
4200
数据库系统课程设计 --- 人事管理系统(超详细)
android移动点餐系统内容和要求,基于Android云计算的移动点餐系统
摘 要:系统发挥Android 富有创造力和想象力的云应用开发,实现一套Android 客户端软件和完善的后台服务功能来完成点餐功能。该系统主要包括后台数据库服务器、WEB 服务器、无线网络、Android 前端等部分。客户端Android 系统智能手机具有前端处理与计算能力,而且通过无线网络访问WEB 服务器,如果需要数据访问,则访问后台数据库。介绍了系统架构的设计与搭建、技术选型、后台数据库的设计与实现、基本实用的点餐功能的分析、设计与开发。本文引用地址:http://www.eepw.com.cn/article/148487.htm
全栈程序员站长
2022/08/31
1.1K0
android移动点餐系统内容和要求,基于Android云计算的移动点餐系统
医院管理数据库课程设计[通俗易懂]
一节复一节,千枝攒万叶。我自不开花,免撩蜂与蝶。 皓首犹贪学,谦虚德益丰。潜神无朕际,悟物不言中。
全栈程序员站长
2022/08/30
1.1K0
医院管理数据库课程设计[通俗易懂]
试题库管理系统–数据库设计[通俗易懂]
目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程,这种传统的考试模式在教学到实施考试的过程带有很大的主观随意性和不规范性。另外随着各高校近年来学生规模的扩大,教学任务日益繁重,教师的工作量相应的不断增加。迫切需要计算机辅助教学系统来打破这种传统的教学模式,减轻教师的工作负担,提高教学质量。因此,本文研究设计了一个试题库管理系统,来解决和缓解高校课程教学中现存的问题,提高教学质量和考试效果,减轻教师工作压力。试题库管理系统可辅助教师对所教科目的各种试题的题型、难度等相关资料进行保存、查询等信息管理;并在需要对学生进行测验、评估的时候,从题库中抽取出相应要求的题目,组成一套试卷。
全栈程序员站长
2022/07/04
2.8K0
试题库管理系统–数据库设计[通俗易懂]
推荐阅读
相关推荐
数据库系统概论之应用开发实验
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档