什么`git结帐…`做的?
我偶尔不小心写了git checkout ...
,这让我陷入了一种独立的头部状态。 我想知道为什么。 这是“小点小说”:
> git checkout . # checks out current directory > git checkout .. # Checks out parent directory, if in repository. > git checkout ... # Puts into detached head state? > git checkout .... error: pathspec '....' did not match any file(s) known to git.
这是gitrevisions(7)
手册页中描述的这种语法的退化forms:
<rev1>...<rev2> Include commits that are reachable from either <rev1> or <rev2> but exclude those that are reachable from both. When either <rev1> or <rev2> is omitted, it defaults to HEAD.
请注意,最后一位,“省略<rev2>
或<rev2>
,默认为HEAD”。 这意味着写作...
相当于HEAD...HEAD
。 当在git checkout
使用时,这将最终评估为HEAD的提交ID。 那就是,你只是在做:
git checkout HEAD^{commit}