如何在一个HEAD指向后立即签出版本?

时间:2017-04-26 10:15:35

标签: git github version-control git-checkout

说我是否检查了以前版本的回购。假设为简单起见,每个提交由一个数字表示,如下所示。如何在HEAD指向后查看版本?我知道我可以通过

进入之前的提交
git checkout HEAD~1

但是如何才能进入后一次提交,在这种情况下,提交号为4,而不知道它的SHA-1值?

1    2     3        4         5
          HEAD

1 个答案:

答案 0 :(得分:2)

这并不容易,因为Git没有任何方法可以引用“未来”提交(当3签出时,没有现成的4引用)。但是,如果我们在其中加入很多假设,我们可以创建一个shell怪物来做到这一点(为了清晰起见,避免使用缩写):

git checkout $(git rev-list --first-parent --reverse HEAD..master | head -1)

请注意,这仅在您当前签出的提交不是合并的一部分时才有效(只能通过合并提交的第二个父级访问)。我们可以让一个更大的怪物自动找到合适的合并提交,但是它会开始占用专用工具的大小......