【问题标题】:Git: If given a commit SHA, can I fetch the previous one?Git:如果给定一个提交 SHA,我可以获取前一个吗?
【发布时间】:2015-03-11 17:11:12
【问题描述】:

我在这里的目的是在提供的提交之前编写一个 rebase 脚本,以便通过提供 SHA 来轻松修复提交(长期考虑允许用户提供正则表达式,但你明白了) .

有什么创意解决方案吗?在这里使用 bash。

【问题讨论】:

  • 给定一个 sha1 abcdef,您可以使用简单的abcdef^ 访问前一个(例如git show abcdef^
  • 请注意,它们可能是多个以前的;一个提交可以有多个父级。

标签: git bash shell scripting


【解决方案1】:

来自 gitrevisions 手册页:

^,例如头^,v1.5.1^0

修订参数的后缀 ^ 表示该提交对象的第一个父对象。 ^ 表示第一个父级(即 ^ 相当于 ^1)。作为一个特殊规则,^0 表示提交本身,并且在引用提交对象的标记对象的对象名称时使用。

~,例如大师~3

修订参数的后缀 ~ 表示作为指定提交对象的第代祖先的提交对象,仅在第一个父代之后。 IE。 ~3 等价于 ^^^ 等价于 ^1^1^1。有关此表单的用法说明,请参见下文。

所以rev^rev~ 都是提交的(第一个)父版本。正如@Jubobs 在他的评论中所说,任何给定的修订都可以有多个父级。

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    相关资源
    最近更新 更多