协慌网

登录 贡献 社区

有什么办法 git checkout 上一个分支吗?

我有点想要cd - git。如果我在 branch master并且我签出了foo ,我希望能够输入git checkout -以返回到master ,并能够再次键入它以返回到foo

像这样的东西存在吗?实施起来会很难吗?

答案

1.6.2 的发行说明中

@{-1}是引用您所在的最后一个分支的一种方式。这是
不仅在期望使用对象名称的地方接受,而且在期望使用分支名称的任何地方都接受,并且就像您键入分支名称一样。
例如git branch --track mybranch @{-1}git merge @{-1} -1-1 和
git rev-parse --symbolic-full-name @{-1}将按预期工作。

git checkout - git checkout @{-1}的简写。

如今,最简单的方法是:

git checkout -

... 是以下内容的别名:

git checkout @{-1}

git checkout减去

如果您想了解更多,我在这里写了整篇文章: Checkout The Previous Branch In Git

正如 @Karl 在git checkout手册中指出的那样:

作为一种特殊情况,最后第 N 个分支的 “@ {-N}” 语法签出该分支(而不是分离)。您还可以指定 - 与 “@ {-1}” 同义。

因此,在这种情况下git checkout -git checkout @{-1}

我认为最近是使用git reflog并解析moving from branch1 to branch2git checkout branch1