git-rev-list 的排序

2024-01-06

git-rev-list 如何对它返回的提交进行排序?

我主要指的是并发开发分支中的提交,然后合并到主分支中。提交似乎并没有按照日期排序,这是有道理的,因为可以从过去或未来的不同时间挑选提交。

例如,这里有一些历史记录git-log...

*   Sat, 25 Aug 2012 11:37:23 -0700 8238401
|\  
| * Thu, 23 Aug 2012 12:29:09 -0700 c9de861
* |   Fri, 24 Aug 2012 16:29:01 -0700 b7e8827
|\ \  
| * | Mon, 14 May 2012 20:46:30 +0200 0a1db74
| * | Mon, 14 May 2012 17:54:25 +0200 e03e71d
| * | Fri, 13 Jul 2012 12:01:11 +0200 bffa852
* | |   Fri, 24 Aug 2012 15:45:13 -0700 09fad50
|\ \ \  
| * | | Fri, 24 Aug 2012 12:19:22 -0700 97a17e4
| * | | Thu, 9 Aug 2012 19:43:25 -0700 5f4a61a
| * | | Fri, 3 Aug 2012 14:28:07 -0700 0c8858d
| * | | Thu, 2 Aug 2012 13:00:58 -0700 aa13bf0
| * | | Wed, 18 Jul 2012 14:30:15 -0700 decff7b
* | | |   Fri, 24 Aug 2012 15:43:19 -0700 091c742

这是通过 rev-list 的相同历史记录的输出。

$ git rev-list HEAD --max-count=13
8238401ccb9f7018c927866896bea583d351ad2a # 1 root
c9de8611d6a3e77757a714cdf6acf46178b1d622 # 2 descends into the second parent
b7e8827b8bbca0c69d85be34cc4a88888c1152f2 # 3 first parent of root
09fad5069636fb2e8cacf15817834e3d32ff6b8e # 4 descends into the first parent
091c742af985cc78711727ca06a24ae42b376fae
7fbca880aa5c011257ef734d0b5bfd5545dbaf6b
07c06f7a83640e11d6be13a87f02e986ecc6e4b3
1168410426293aef8ce33becb277ff225595e183
97a17e4e9fa5cafa531ff79cb88a9ee5c224a613
0a1db746fbcaf09681e446250f75581cc8f8fd05
e03e71da56608f60770eb80767dcd94e698cdcae
5f4a61aea834fe25ce1596bc9c0e0b5e563aa98b
0c8858de8c82bae3fd88513724689a07d231da7e

rev-list 命令如何决定是列出第一个父级还是下降到第 n 个父级的提交图?例如,在查看上面的 (1) 后,rev-list 下降到第二个父级 (2)。然而,在查看(3)之后,它下降到第一个父级(4)。这种行为定义明确吗?


默认情况下,提交按时间倒序排列。您可以根据您传递的选项以不同的顺序获得输出。请参阅提交订单部分中的git 修订列表 http://www.kernel.org/pub/software/scm/git/docs/git-rev-list.html其他选项的手册页。

git log默认情况下也按时间倒序排列。但是,当您运行它时--graph这意味着--topo-order.

最后,按日期提交排序是由commit日期,但默认输出git log显示author日期。通过补丁、精选和变基,这两者可能会变得不同步。

最后两点应该解释为什么你的两个输出的顺序不同,以及表面上的原因git rev-list不是按日期订购。

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

git-rev-list 的排序 的相关文章

  • “*text=auto”和“*text=auto eol=lf”有什么区别?

    我正在读关于 gitattributes文件和强制行结尾的规则some https rehansaeed com gitattributes best practices line endings教程是这样写的 text auto and
  • 如何下载 GitHub 版本的二进制文件?

    我有一个包含我需要的二进制文件的存储库 I can git checkout tags thetagoftherelease 这似乎检查了正确的标签 但没有拉下二进制文件 如何获取添加到版本中的二进制文件 版本上的绿色框 在版本中添加了二进
  • Git 克隆已经是克隆的存储库

    做这个手术有什么副作用吗 git clone已经是另一个远程存储库的克隆的存储库 没有副作用 但您应该准确了解克隆存储库时会发生什么 一些理论 问题 是 当您 以正常方式 克隆存储库时 即在调用时没有调整任何时髦的旋钮git clone y
  • 如果提交格式不正确,是否可以拒绝 Github 上的提交?

    正如中提到的this https stackoverflow com a 6742691 1501285答案 可以在 Github 提交中引用问题 是否可以拒绝它的提交not格式化成这样 Example fix gh 12 foo bar是
  • 如何比较本地 Git 分支与其远程分支

    我怎样才能看到diff本地分支和远程分支之间 git diff
  • 在 GitHub 上看不到“在 Xcode 中打开”按钮

    正如在GitHub 和 Xcode 9 中的新源代码管理工作流程 https developer apple com videos play wwdc2017 405 time 204Apple 视频会话 我们可以直接从 Xcode 克隆项
  • 仅当除 master 之外的所有分支都有推送的 TAG 时,Gitlab 才会触发 Pipeline

    我的 YAML 文件必须如何配置 以便仅在推送标签时触发一种情况 作业 构建 的管道 该标签可能位于除 master 之外的所有分支中 对于主案例 我有一个单独的工作 build master yaml 文件 问题 如果主分支获得标签 管道
  • 为什么 iTerm2 中不显示 git 颜色

    所以我有我的 gitconfig 设置来处理颜色 在终端中它工作得很好 看起来也不错 然而 在 iTerm2 中 除非我为 git 设置反向属性 否则我的 gitconfig 根本不会显示颜色 然后它们就出现了 但是谁喜欢相反的颜色呢 为什
  • 如何恢复已删除的文件[重复]

    这个问题在这里已经有答案了 可能的重复 在 Git 存储库中恢复已删除的文件 https stackoverflow com questions 953481 restore a deleted file in a git repo 如何恢
  • 如果检测到更改中的特定短语,如何阻止 git commit?

    我注意到开发人员倾向于做的一些模式 例如使用以下代码提交 javascript 测试fdescribe or fit留在其中 这意味着只有一个测试 套件将运行 通常是在审查阶段发现的 但最好尽早发现这些小事情 想知道是否有一种方法可以配置
  • Git 从不同的存储库中提取分支

    我当前的存储库中只有几个文件 我想合并来自不同存储库的远程分支 从中拉出并合并一个分支github com username code git 分支装载机 然后从中拉出并合并一个分支github com username code git
  • 比较 2 次提交

    我没有找到任何关于获取两个文件之间差异的文档 我使用下面的代码使用坚固的方式提交文件 repo Rugged Repository new reponame email protected cdn cgi l email protectio
  • 空提交的 Git 补丁

    我创建一个空提交 git commit allow empty m something important 有时它很有用 例如协调 2 个 或更多 不同的 git 树 然而 当我 git format patch 空提交被省略 因为它们不与
  • Git 和外部备份。子目录是空的,我宁愿它不是空的。

    我想使用 Git 创建外部备份系统 这部分是受到答案的启发在外部磁盘上备份整个 git 存储库的最佳方法是什么 https stackoverflow com a 4372855 2533127 其中建议如下 您还可以通过启动一个新的存储库
  • 更快的“git rebase --preserve-merges”方法

    我通过创建一系列功能分支来使用 git 并在完成后将它们合并到 mastergit merge no ff 这会创建空的合并提交 可用于识别先前功能分支的起点和终点 为了处理多个并发分支 甚至嵌套分支 我使用 rebase 我从不合并回去
  • 使用 git 合并两个文件夹

    我正在和一些以前从未使用过 git 的人一起开发一个项目 由于不了解 git 的功能 他们创建了该项目的两个版本 开发版本和生产版本 这两个版本都存在于当前环境中 更复杂的是 除了旧的开发文件夹之外 另一个用户还创建了这些文件夹 所以项目目
  • 如何从旧提交创建新的 Git 分支? [复制]

    这个问题在这里已经有答案了 可能重复 最近 不太明确的问题 使用 Git 从先前的提交分支 http stackoverflow com questions 2816715 branch from a previous commit usi
  • 如何防止自动工具自动重新生成配置脚本?

    有时由于SCM没有严格记住文件的时间戳 生成的Makefile会认为需要重新运行 autoreconf i 或相当于从Makefile am重新生成Makefile in 从configure ac重新生成配置等 我该如何防止这种情况 我想
  • 如何在 git merge 提交中列出冲突的文件(父级都有更改的文件)?

    qgit 有一个很好的选择 可以在合并提交中查看 有趣 的文件 其中有趣的文件被定义为在两个父文件中都有更改的文件 查看此类文件的相应命令行是什么 git show name status SHA1 of merge 将向您显示提交消息和在
  • 使用 git 同时维护不同版本的代码

    我有一个需要优化的代码 我想同时维护一组版本的代码 每个版本可以描述为一些功能 优化的组合 最终 我将决定哪个版本是最好的 我不想将这些版本合并为更少的版本 但是 我希望能够对 大 源文件进行 小 修改 这可能会跨版本转移 并且我希望这一修

随机推荐

  • 同时保留原始变量和解构的干净方法

    有没有更干净的方法来做到这一点 至少是 ES 草案并且有 babel 插件 即 ES6 ES7 等 const a b result doSomething 我想将整体结果保留为一个单一的对象 但同时也对其进行解构 从技术上讲它是有效的 但
  • 获取参数编码

    我在 GET 请求中使用 spring mvc 和特殊字符时遇到问题 考虑以下方法 RequestMapping update public Object testMethod RequestParam String name throws
  • C 中文件范围内可变修改的数组

    我有一些这样的代码 static int a 6 static int b 3 static int Hello a b 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 但是当我编译它时 它说错误 在文件范围内可变地
  • 使用 Java-JDBC 从 Oracle 数据库读取数据时的字符编码

    我们的数据存储在 oracle 10g db 中 其中包含法语字符集 要求是使用 Java 读取数据并生成输出文件 我通过 SQL plus 检查了 Oracle db 中数据的有效性 看起来不错 从窗口 set NLS LANG AMER
  • Android 应用内购买问题

    我已使用静态响应 ID 在我的帐户中实现了应用内购买android test purchased 现在购买该商品时Toast弹出窗口说 谢谢 您的物品很快就会出现 我认为到目前为止一切都很完美 我的问题是 这是哪里做的Toast来自 我找不
  • 将简单元数据附加到 MySQL 数据库

    有没有办法将一段元数据附加到 MySQL 数据库 我正在尝试编写代码 以便在代码升级需要时自动更新数据库架构 这需要存储单个整数值 模式版本 我当然可以为其创建一个完整的表格 但这对于一个简单的数字来说似乎有点过分了 您可以使用表注释来存储
  • 如何访问默认的 iOS 声音并将其设置为通知声音?

    如何访问默认的 iOS 声音 三音 编钟 玻璃 喇叭 铃声 电子 以将其设置为本地通知声音 我已经创建了本地通知 一切正常 但使用默认声音 三音 我想使用 Chime 或其他 我只知道如何使用我自己的声音文件 localNotif soun
  • 如何从内存中删除 perl 对象

    我编写的 Perl 脚本的内存使用存在一些问题 代码如下 该脚本启动一些变量 用数据填充它们 然后再次取消定义它们 但是 删除所有内容后脚本的内存使用率仍然很高 无法包含任何数据 根据ps该脚本在前 39 秒内使用 1 027 Mb 内存
  • 如何管理生成静态库和 dll 的构建库项目?

    我有一个包含约 50 个项目的大型视觉工作室解决方案 有 StaticDebug StaticRelease Debug 和 Release 的配置 有些库需要 dll 和静态库两种形式 为了获得它们 我们使用不同的配置重建解决方案 配置管
  • 根据出生日期搜索用户年龄

    我无法理解如何根据用户的出生日期对用户年龄进行范围搜索 我的数据库仅存储用户 dob 我希望访问者使用高级搜索表单并执行年龄搜索 例如 18 23 28 36 等 我尝试了一些方法 但似乎都不起作用 我向用户模型添加了范围 定义最小和最大年
  • 如何从 ListView 启动一个新活动并为其指定多个参数

    下面是我的代码 它在列表视图中显示从 json 解析的数据 我想在用户单击列表中的任何项目时开始新活动 我关注了这个网址http www androidhive info 2012 01 android json parsing tutor
  • ASP Net Core 3 会话(状态)并发性和完整性

    我有一个页面同时请求多个请求 所以这些请求都在同一个会话中 为了访问我到处使用的会话IHttpContextAccessor 我的问题是 无论时间如何 某些请求都看不到其他请求已经设置的会话状态 而是看到一些先前的状态 再次在时间上 设置状
  • 从 ajax 调用获取表单时,MVC2 客户端验证不起作用

    我正在尝试在通过 get 呈现的部分视图中使用 MVC2 客户端验证 但是 客户端验证不起作用 我不太确定这笔交易是什么 Required ErrorMessage Email is required public string Email
  • 有没有一个好的python库可以将数字转换成各自的“符号”? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 0 0 1 1 9 9 10 a 11 b 35 z 36 A 37 B 60 Z 61 10 62 11 70 19 71 1a 72
  • 在 R 中暂停和恢复插入符号训练

    假设我会做一个caret在 R 中进行训练 但我想将此训练分为两个运行会话 library mlbench data Sonar library caret set seed 998 inTraining lt createDataPart
  • 元素 mat-checkbox-ripple 被切断

    有一个带有复选框 MatCheckbox 的列表 当用户单击复选框时 动画将被切断 每个复选框的包装都有 display flex overflow hidden 风格 我看到 mat ripple element 具有绝对位置 无法理解为
  • 字符串连接的意外结果

    我编写了以下代码来从每行的文件名文件列表中读取并向其附加一些数据 open my info lt abc txt while lt info gt chomp my filename temp xml print n print filen
  • 使用 IAudioEncoderProperties 在 DirectShow 应用程序中配置 LAME MP3 编码器

    我正在编写一个 NET DirectShow 应用程序 它从任何捕获设备捕获音频流 使用 LAME directshow 过滤器将其编码为 mp3 最后将流写入文件 这是我的直接显示图 捕获源 gt LAME AUDIO ENCODER 音
  • NetBeans 中 PHPUnit 和 Selenium 的代码完成

    如何让 NetBeans 为 PHPUnit 类和方法提供代码完成 我已经尝试过从PHPUnit GitHub 项目 https github com sebastianbergmann phpunit 但我不明白为什么该目录与上面提到的不
  • git-rev-list 的排序

    git rev list 如何对它返回的提交进行排序 我主要指的是并发开发分支中的提交 然后合并到主分支中 提交似乎并没有按照日期排序 这是有道理的 因为可以从过去或未来的不同时间挑选提交 例如 这里有一些历史记录git log Sat 2