首页 > 其他分享 >git回退版本

git回退版本

时间:2024-03-22 19:44:24浏览次数:14  
标签:HEAD git -- 版本 回退 commit main

当我们commit了之后想回退,共有两个命令,四种组合。
包括git reset和git revert。其中git reset有三种模式:--mixed, --soft, --hard

假设你提交了一次,这次提交修改了changed.sh文件,你想回退这次修改。

HEAD指的当前位置,HEAD^1就是HEAD的上一次commit,HEAD^2就是上上次commit

  1. soft

--soft
Does not touch the index file or the working tree at all (but resets the head to , just like all modes do). This leaves all your changed files "Changes to be committed", as git status would put it.

回退到之前的commit,并将修改放在暂存区。(这意味着你的暂存区如果有同名文件,那么暂存的修改会被冲刷掉),工作区不会有影响。

$ git reset --soft HEAD^1
$ git status
位于分支 main
您的分支与上游分支 'origin/main' 一致。

要提交的变更:
  (使用 "git restore --staged <文件>..." 以取消暂存)
        修改:     changed.sh
  1. mixed

--mixed
Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit) and reports what has not been updated. This is the default action.

回退到之前的commit,并将修改放在工作区。(不加参数默认是--mixed)
操作:
1. 清空暂存区,这意味着你在暂存区会被全部清空
2. 将受影响的文件放到工作区,保留changes
3. 如果工作区的文件和受影响的文件有重叠,不会覆盖工作区的文件

$ git reset HEAD^1
$ git status
位于分支 main
您的分支与上游分支 'origin/main' 一致。

尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git restore <文件>..." 丢弃工作区的改动)
        修改:     changed.sh
  1. git reset --hard

Resets the index and working tree. Any changes to tracked files in the working tree since are discarded. Any untracked files or directories in the way of writing any tracked files are simply deleted.

这样直接把HEAD指针回退,并且不会将两次commit的差异保存在工作区/暂存区中。会清空你的工作区和暂存区,应当慎用。一旦回退,除非记得之前的commit id,不然看不到之前的commit内容了。

$ git reset --hard HEAD^1
$ git status
位于分支 main
您的分支与上游分支 'origin/main' 一致。

标签:HEAD,git,--,版本,回退,commit,main
From: https://www.cnblogs.com/wangbingbing/p/18090171

相关文章

  • Git介绍
    Git是一个版本控制系统,它允许开发人员跟踪和管理项目的源代码变化。以下是Git的基本概念和使用方式:仓库(Repository):Git使用仓库来存储项目的源代码和历史记录。仓库可以是本地的,也可以是远程的(例如在GitHub、GitLab等平台上)。提交(Commit):提交是Git中的一个重要概念,它代表一次......
  • Github最受欢迎的TOP 10开源RTSP流媒体项目
    Github最受欢迎的TOP10开源RTSP流媒体项目一块程序圆关注IP属地:河南0.1812020.09.2209:45:20字数457阅读6,684Github选出 TOP10开源免费的RTSP流媒体项目,以下是具体排名及星星数。 1、Easydarwin星星数:4,307Easydarwin是国内团队开发的开源流媒体框架......
  • 如何回退已经合并的master代码?
    如何回退已经合并的master代码?在CodeUp(一个代码托管平台,类似于GitLab、GitHub等)上撤销已经合并到master分支的提交,你需要遵循以下基本步骤:回滚master分支:如果你想要撤销整个合并操作并恢复到合并前的状态,你可以执行一个反向合并(revertmerge)。在Git中,这通常通过创建一个新......
  • 【Git】第二课:git安装和配置
    ......
  • 【GIT】最好用的git可视化教程网站推荐
    最好用可视化学习git网站:https://learngitbranching.js.org/?demo=&locale=zh_CN玩遍所有关卡,花半天时间便能掌握git......
  • 如何使用极狐GitLab Runner 修改日志大小限制
    本文作者:徐晓伟GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。本文讲述了如何调整极狐GitlabRunner日志大小限制问题测试项目:https......
  • Java版本spring cloud + spring boot企业电子招投标系统源代码
    招投标管理系统是一个集门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理于一体的综合性应用平台。它适用于招标代理、政府采购、企业采购和工程交易等业务的企业,旨在提高项目管理的效率和质量。该系统以项目为主......
  • 2020-1-1-GIT使用经验汇总
    Git安装、创建版本库、同步操作、分支管理、查看版本记录、远程仓库相关操作安装sudoapt-getinstallgit设置用户名和邮箱gitconfig--globaluser.name"yourname"gitconfig--globaluser.email"[email protected]"创建版本库1.创建目录mkdirlearniggitcdlearn......
  • git分支合并文件丢失问题
    一、产生问题 某些情况下,我们将两个分支进行合并时,在没有提示手动解决冲突的情况下下,文件会丢失。这可能是以下问题导致的。二、问题所在 git分支的合并,并不是多个分支简单的求内容的并集。假设我们有两个分支a与b,并且a与b中有相同的文件名c。当我们对a与b中的文件c内......
  • Td-Genie v2.1.0版本发布(TDengine GUI图形界面工具)
    Td-Geniev2.1.0免费开源的TDengine时序数据库图形用户界面工具,为用户提供直观、易用的数据库管理和操作体验!介绍Td-Genie是一款功能全面、操作简便的TDengine时序数据库图形界面工具,V2.1.0目前支持的TDengineServer版本列表如下:TDengine2.x版本(2.6.0.34已测试)TDengine......