首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >‘`git diff HEAD^’的反义词是什么?

‘`git diff HEAD^’的反义词是什么?
EN

Stack Overflow用户
提问于 2010-08-24 21:37:38
回答 2查看 9.3K关注 0票数 26

在git中,我可以通过说HEAD^HEAD~1来指定以前的版本。走另一条路怎么样?假设我使用的是修订版X,并且我使用git checkout X^。我该怎么回去呢?

git checkout X+这样的东西

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-24 22:06:09

你不能真的做到这一点。git中的历史是一个directed acyclic graph -每次提交都包含对其父级的引用,但父级没有对其子级的引用。

当您考虑创建多个分支的提交时,这里的问题应该变得显而易见。你指的是哪个“下一次提交”?对于parents,您可以关闭(正常的合并提交有第一个和第二个父级),但是如何对子进程执行此操作?即使你知道你试图在哪个分支上(例如,你已经签出了master~4,现在你想看看master~3),它的定义也不是很好--你可能会遇到这样的情况:

代码语言:javascript
复制
- X (HEAD) - o - o - o - Y (master)
   \                    /
    o - o - o ----------

也就是说,在简单的情况下,您可以这样做:

代码语言:javascript
复制
git checkout $(git rev-list HEAD..master | tail -n 1)

显然,对于线性历史,这将很好地工作。合并..。rev-list在历史上从现在到过去工作,向后追随它。我认为它首先跟随第一个父代,所以最后打印的东西将是通过跟随所有最后的父代找到的HEAD之后的提交。

编辑:这确实假设您知道要前进到哪个分支。如果你不这样做..。好吧,你很可能会在所有的引用中寻找以当前头作为父对象的提交--可能是对git rev-parse的输出

代码语言:javascript
复制
git rev-list --all --children | grep ^$(git rev-parse HEAD)

然后从行中抓取另一个SHA1 (使用awk,随便什么)。但是,如果有多个结果,您将不得不手动检查或做出任意选择。

票数 35
EN

Stack Overflow用户

发布于 2010-08-24 22:08:14

据我所知,没有象征性的方式来引用提交的子对象。

我现在能给你的最好的就是git rev-list--children选项。在这里,我要求将最近的四个承诺打印得很漂亮,以及关于他们孩子的信息。请注意,在每个条目(不是最近的条目)的" commit“行上有一个额外的提交编号,它指定该节点的子节点。您可以手动获取它,也可以通过一些shell脚本获取该子对象。

代码语言:javascript
复制
$ git rev-list --children --pretty HEAD~3...

commit 20dba296ad1d48ec90f9319e2c13b245e849f698
Author: Somebody <____@____.net>
Date:   Thu May 6 19:10:38 2010 -0400

    Support for complex trig/pow.

commit 9d42b5bac1721a847a39c25672e577c7101c8ff0 20dba296ad1d48ec90f9319e2c13b245e849f698
Author: Somebody <____@____.net>
Date:   Wed May 5 21:55:07 2010 -0400

    Fix doc formatting warning.

commit 72bed3baa9df71cb224dfa8388b5969d50f5567c 9d42b5bac1721a847a39c25672e577c7101c8ff0
Merge: b8244cb61491c9cdb83d36e57f8eb49773e44f6b 899c3dd3f9f419f200b84ca0abe59d7ac3d5bb53
Author: Somebody <____@____.net>
Date:   Wed May 5 21:54:59 2010 -0400

    Merge branch 'master' 

commit 899c3dd3f9f419f200b84ca0abe59d7ac3d5bb53 72bed3baa9df71cb224dfa8388b5969d50f5567c
Author: Somebody <____@____.net>
Date:   Wed May 5 21:19:11 2010 -0400

    Fix link
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3557014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档