有没有办法输出之前的git分支名?
Is there a way to output the previous git branch name?
此答案告诉我们如何结帐到上一个分支,并有助于解释 @{-1}
:
如果我在更改分支之前存储了一些代码并且现在正在考虑处理存储,那么之前的分支很重要。
有没有一种方法可以快速查看上一个分支的名称而无需搜索 git reflog show
最新的 checkout: moving from foo to bar
条目?
更多信息:
这是我忘记以前工作环境的解决方案,这种情况通常发生在午餐回来后。
git rev-parse @{-1}
显示将由 git checkout -
而非分支名称签出的分支的 HEAD 提交。
git branch --contains @{-1}
将列出具有该提交的每个分支。
将带有该提交的分支列为 HEAD 会很有帮助,因为它可以帮助我想起我以前的工作环境,但我不确定该怎么做。
也许这就是你想要的:
git describe --all $(git rev-parse @{-1})
来自 git-describe
手册页:
--all
Instead of using only the annotated tags, use any ref found in refs/
namespace. This option enables matching any known branch,
remote-tracking branch, or lightweight tag.
例如,如果我这样做:
$ git checkout mybranch
$ git checkout master
$ git describe --all $(git rev-parse @{-1})
我明白了:
heads/mybranch
如果你只想要名字,你可以使用:
git name-rev $(git rev-parse @{-1}) --name-only
例如:
$ git checkout mybranch
$ git checkout master
$ git name-rev $(git rev-parse @{-1}) --name-only
> mybranch
它比接受的答案更可取,因为它没有在名称中显示 "heads",因此它可以与其他 git 命令链接。
此答案告诉我们如何结帐到上一个分支,并有助于解释 @{-1}
:
如果我在更改分支之前存储了一些代码并且现在正在考虑处理存储,那么之前的分支很重要。
有没有一种方法可以快速查看上一个分支的名称而无需搜索 git reflog show
最新的 checkout: moving from foo to bar
条目?
更多信息:
这是我忘记以前工作环境的解决方案,这种情况通常发生在午餐回来后。
git rev-parse @{-1}
显示将由 git checkout -
而非分支名称签出的分支的 HEAD 提交。
git branch --contains @{-1}
将列出具有该提交的每个分支。
将带有该提交的分支列为 HEAD 会很有帮助,因为它可以帮助我想起我以前的工作环境,但我不确定该怎么做。
也许这就是你想要的:
git describe --all $(git rev-parse @{-1})
来自 git-describe
手册页:
--all
Instead of using only the annotated tags, use any ref found in refs/ namespace. This option enables matching any known branch, remote-tracking branch, or lightweight tag.
例如,如果我这样做:
$ git checkout mybranch
$ git checkout master
$ git describe --all $(git rev-parse @{-1})
我明白了:
heads/mybranch
如果你只想要名字,你可以使用:
git name-rev $(git rev-parse @{-1}) --name-only
例如:
$ git checkout mybranch
$ git checkout master
$ git name-rev $(git rev-parse @{-1}) --name-only
> mybranch
它比接受的答案更可取,因为它没有在名称中显示 "heads",因此它可以与其他 git 命令链接。