‘git diff head^’的反面是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

在git中,我可以通过以下方式指定以前的修订HEAD^HEAD~1。往另一边走怎么样?假设我在第十版,我是这样做的git checkout X^。我该怎么回去?

有点像git checkout X+?

提问于
用户回答回答于

你不可能做到精确的。

你可能会遇到这样的情况:

- X (HEAD) - o - o - o - Y (master)
   \                    /
    o - o - o ----------

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

git checkout $(git rev-list HEAD..master | tail -n 1)

很明显,这在线性历史中会很好。和合并。rev-list作品从现在到过去,在历史上,跟随它向后走。我相信它会跟随第一个父母,所以最后打印的东西将是提交后。HEAD通过跟踪所有最后的父母发现的。

用户回答回答于

我认为这是不可能的,如果要在此提交之外创建多个分支,那么多个提交会发生什么情况?那么,什么才是“头+”呢?这是模棱两可和错误的。

说到我从数据结构中知道的:Git将历史存储为一个单链接列表,而你的操作则需要一个双链接列表。

扫码关注云+社区