Git仓库版本的回退/前进

2023-11-02

前言

版本库做为一个可迭代更新的仓库,不可能只是单纯提供版本更新操作,其最重要的还是提供了历史版本回滚功能。

在使用版本回滚功能前,我们会使用一系列的辅助查询命令,比如查看版本信息、仓库状态能命令,辅助是否需要进行回滚操作。

一、查看版本信息

## 查看版本日记  (详细)
$ git log

## 查看版本日记 (单行)
$ git log --pretty=oneline

二、版本定义

git是通过版本ID进行版本回滚的,所以很有必要了解版本ID定义。

git有两种ID定义方式:HEAD 和 提交时自动计算的SHA1字符串。

(一)git HEAD定义准则:

HEAD       :     当前版本
HEAD^      :     上一个版本
HEAD^^     :     上上一个版本
HEAD^^^    :     上上上一个版本
HEAD^n     :     上n个版本(当一般不这么用,使用下面方法)
HEAD~100   :     上100个版本(~后的表示版本号)

(二) 用commit时计算的SHA1值做为版本ID
例如:40cecabba5c70699a4b108ccde68fd5cd09d5466

三、版本回滚

回滚时可根据 “HEAD” 或 “版本ID” 进行回滚。

## 使用HEAD方式回滚
$ git reset --hard HEAD^

## 使用版本ID回滚
$ git reset --hard 40cecab

PS:在使用版本ID回滚时,不需要输入全部的值,只需要输入一定长度即可(这里的一定长度,是指该缩略ID已经满足ID的唯一性,说白了就是让git可以找到唯一的那个它)。

四、查看命令执行记录

配合命令执行记录,可以灵活的进行版本库的版本回滚等操作。

## 查看命令执行历史
$ git reflog
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git仓库版本的回退/前进 的相关文章

  • git stash 删除最旧的存储(比如最旧的 5 个存储)

    如何在一个语句中删除最旧的存储 例如最旧的 5 个存储 而不是执行以下操作 git stash drop stash 3 git stash drop stash 4 git stash drop stash 5 git stash dro
  • 如何升级 Windows 中 git svn 使用的 SVN 版本?

    我的公司正在将SVN升级到1 7 检查git svn version显示正在使用的SVN版本是1 4 6 我想获得 git svn 使用的 SVN 版本接近 1 7 但是 我没有看到有关更新 git svn 使用的 SVN 版本 在 Win
  • 在 Web 应用程序中显示最新的提交值?

    我有一些 Rails 应用程序 我使用 Git 作为版本控制系统 我使用 GitHub 或 Beanstalk 作为存储库主机 从理论上讲 我想要做的事情非常简单 以某种方式在 Web 应用程序的页脚中显示最新的提交 ID 号 哈希值 这样
  • 如何解决 VS Code 中变基拉取的合并冲突?

    当我做一个git pull rebase 并且我的提交中存在合并冲突 我得到冲突差异视图 解决所有冲突并暂存文件 然后呢 我可以打开终端并运行git rebase continue但是 VS Code 中不应该有一个按钮来完成变基吗 只需使
  • 致命:无法将 HEAD 解析为有效引用

    我正进入 状态fatal Failed to resolve HEAD as a valid ref 每当我尝试承诺时 我努力了 echo ref refs heads master gt git HEAD 但它不起作用 也尝试过 git
  • 如何将 GIT 调用的输出获取到批处理脚本中的变量中?

    我有一个 git 命令来获取当前存储库的最新 SHA 如下所示 git log pretty format H n 1 我有一个 Windows 批处理脚本 我想按如下方式使用它 SET CURRENT SHA 但我不知道如何将从 git
  • 我在哪里? *(无分支)

    我已经熟悉了创建 合并和删除分支 我想知道我在哪里 这样我就不会将工作提交到错误的分支 我用git branch a看看我有哪些分支 我认为星号 显示我当前所在的分支 当我得到以下信息时 这意味着什么 no branch master or
  • Git post-receive - 如何检查推送的分支是否与主分支合并

    在我们的团队中 我们通常将所有任务推送到单独的分支中 然后发布经理审查这些分支并将它们合并到 主 分支中 有时团队成员忘记将他们的分支与主分支合并 在推送之前 所以我想做的是 在用户推送后输出一条消息 请与主分支合并 我想我需要检查一些内容
  • 您的分支比“origin/master”领先 3 个提交

    我在运行时收到以下信息git status Your branch is ahead of origin master by 3 commits 我读过其他一些帖子 解决这个问题的方法是运行git pull rebase但是 rebase
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 清理远程 Git 分支

    我已经将 SVN 存储库移至 Git 可能由于多次克隆 我现在只剩下一堆看起来像这样的分支 BranchA origin BranchA remotes BranchA remotes origin BranchA remotes orig
  • 将 Visual Studio 在线 Git 存储库集成到 Android Studio 1.0.2

    我正在使用 Visual Studio Online 进行开发过程 我想将我的 Android Studio 1 0 2 代码集成到其中 但是 据我所知 Android Studio 没有 TFS 插件 这就是为什么我想使用 Git 进行源
  • 检查 Git 中是否需要 pull

    如何检查远程存储库是否已更改并且需要拉取 现在我使用这个简单的脚本 git pull dry run grep q v Already up to date changed 1 但它比较重 有没有更好的办法 理想的解决方案是检查所有远程分支
  • 为什么cherry-pick 告诉我所有行都已更改?

    Updated 考虑文件 abc 在提交 A 和 B 中都相同 begin 123 456 789 klm end 在A中 我们重构第一行123 gt AAA并在结果之上选择 B Git 告诉我们all lines in the file
  • Android repo 脚本创建的 .repo/projects/ 中的裸 git 存储库的用途是什么?

    The 安卓源码 http android git kernel org 由以下人员管理repo http source android com source version control html 使用 repo 同步时 一个名为 re
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • Git:忽略版本控制文件

    gitignore 文件对于忽略一些我们不想控制的文件非常有用 不幸的是 当文件已处于版本控制之下时 它无法使用 例如 我的 gitignore 已添加到 git 中 文件可能与我的同事想要的不同 例如我想忽略 Vim 文件 每当我对此文件
  • 为什么 git 在每次合并时都运行“git gc --auto”?

    今天 git 开始表现得很有趣 嗯 比平时更有趣 坚持运行git gc每次合并后 即使它们是背靠背的 C Projects my current project gt git pull remote Counting objects 31
  • 在 python 中找不到 git 可执行文件

    我试图使用访问密钥克隆 git 存储库 但是当我尝试运行它时 它抛出一个异常 说找不到 git 可执行文件 但我已经安装了 git 并且 in it py 显示了正确的路径 C Program Files Git bin 我还安装了 git
  • Git 忽略本地文件更改

    我都尝试过 git update index assume unchanged config myconfig and editing git info exclude并添加config myconfig 然而 当我执行 git pull

随机推荐

  • CSMA/CD工作原理

    CSMA CD就是载波监听多点接入 碰撞检测 CSMA CD工作原理可以概括如下 1 先听后说 边听边说 2 一旦冲突 立即停说 3 等待时机 然后再说 在发送数据前 先监听总线是否空闲 若总线忙 则不发送 若总线空闲 则把准备好的数据发送
  • Java打印变量的参数类型

    具体方法如下 public static String getType Object o if ObjectUtils isEmpty o return 当前参数为空 else return o getClass toString 测试案例
  • 如何判断是字符型注入还是整形注入

    1 数字型注入 当输入的参数为整形时 如果存在注入漏洞 可以认为是数字型注入 测试步骤 1 加单引号 URL www text com text php id 3 对应的sql select from table where id 3 这时
  • UITabBarController使用

    文章目的 如何用纯代码的方式创建UITabBarController 方法 1 首先开启XCode并建立一个Empty Application 2 加入一个Objective C Class并继承自UIViewController 取名为F
  • 硬件模块化开发的例子:LD3320语音模块与Source Insight的使用

    目录 硬件模块化开发的行情 LD3320语音模块使用手册介绍 语音模块验货测试 硬件连接效果图 测试结果良好 Source Insight代码查看器 创建工程 修改字体 配色方案 中文乱码 关联代码 语音识别模块代码分析 语音识别模块二次开
  • day 33 css

    day 33 css 基本选择器 1 元素选择器 p color red 2 ID选择器 i1 background color red 3 类选择器 复制代码 c1 font size 14px p c1 color red 复制代码 注
  • uniCloud 云函数/云对象 node版本改变成12或18解决方案

    爆红信息 right hand side of instanceof is not an object 今天卡到一个本地跑好好的云对象部署云端直接报错了 原因是这样的 1 你去看看你云函数依赖那npm install的插件node版本是不是
  • kyocera client tool 安装_使用官方gdc-client软件下载TCGA数据

    要是有gdc client软件下载数据 需要以下三步才能完成 1 GDC筛选检索下载需要数据的Manifest文件 TCGA改版后 下载方式变得大为不同 数据都整合在GDC Genomic Data Commons 的DATA PORTAL
  • 牛客网试题+答案分析+大牛面试经验(3)

    1 串的长度是指 A 串中所含不同字母的个数 B 串中所含字符的个数 C 串中所含不同字符的个数 D 串中所含非空格字符的个数 答案 B 解析 串的长度定义为串中字符的数目 所以选项B为正确答案 选项C不正确 因为串中可以含有相同的字符 选
  • plt绘制3D渐变填充柱状图

    from mpl toolkits mplot3d import Axes3D import matplotlib pyplot as plt import matplotlib colors import numpy as np def
  • 四种常见Bug类型

    1 粗心 pwd input 请输入密码 if pwd 520666 print 正确 这是验证用户密码的代码 如果你把它放进运行 会报如下错误 找一下这段代码错误 修改代码让它成功运行 pwd input 请输入密码 if pwd 520
  • QT slot,signal,connect

    connect三种写法 函数 指针 宏 lambda 函数 指针 connect sender QObject destroyed this MyObject objectDestroyed 宏 connect sender SIGNAL
  • Qstring类的常见使用

    Qstring 数据块 初始化 QSring类型之间的相互转换 Qstring转成其他类型 其他类型转Qstring Qstring类的常用方法 拼接字符 格式化 查找特定位置的字符 插入字符 起始位置插入数据 替换指定位置的几个字符 查询
  • QT QPushButton 通过stylesheet 设置样式

    1 QT QPushButton 通过stylesheet 设置样式 ui gt pushButton gt setStyleSheet QPushButton background color rgba 255 178 0 100 col
  • Mysql8完全卸载教程

    0 备份所有需要保留的数据库 在Navicat中选择对应库表选择导出为Sql文件即可 如果卸载数据库的来由是因为数据库已经无法正常使用打开所以需要卸载数据库进行重新安装的话可以跳过这一步 1 停止所有Mysql相关服务 Win11直接搜索服
  • 农作物地块范围识别(图像分割)

    来源 机器学习AI算法工程 知乎 Now more 本文约5500字 建议阅读15分钟本文为你介绍 以薏仁米作物识别以及产量预测为比赛命题 及对对应获奖的开发算法模型 农作物的资产盘点与精准产量预测是实现农业精细化管理的核心环节 当前 我国
  • Unity实现全景图

    1 前言 实现全景查看有两种方式 一种是创建天空盒 另外一种是全景图渲染到一个球形上 从内球内部看 两者都可以用天空盒材质Skybox实现 2 创建天空盒材质 先创建一个材质球命名为Sky 在 Shader 下拉选单中 单击 Skybox
  • 【JavaScript 逆向】521 加速乐多层响应 Cookie 逆向

    前言 现在一些网站对 JavaScript 代码采取了一定的保护措施 比如变量名混淆 执行逻辑混淆 反调试 核心逻辑加密等 有的还对数据接口进行了加密 这次的案例是对加速乐 AAEncode OB 混淆方式的破解 声明 本文章中所有内容仅供
  • Hadoop使用

    1 常用命令 1 namenode格式化 hdfs namenode format 2 启动历史服务器 mapred daemon start historyserver 或者mr jobhistory daemon sh stop his
  • Git仓库版本的回退/前进

    前言 版本库做为一个可迭代更新的仓库 不可能只是单纯提供版本更新操作 其最重要的还是提供了历史版本回滚功能 在使用版本回滚功能前 我们会使用一系列的辅助查询命令 比如查看版本信息 仓库状态能命令 辅助是否需要进行回滚操作 一 查看版本信息