Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 使用';吉特分行';命令_Git - Fatal编程技术网

Git 使用';吉特分行';命令

Git 使用';吉特分行';命令,git,Git,当我在太多的分支上工作时,我遇到了一个问题,需要花费大量的时间才能找到我正在处理的当前分支。是否有一种方法可以在使用git branch命令时显示的列表顶部列出当前分支?如果您只想要签出的分支,请使用git branch--show current您是否考虑过自定义git提示符,使其显示当前分支 这是我的git提示符的样子,表明我在主分支上,这对我来说是一个巨大的时间节省,因为我总是知道我当前在哪个分支上 如果您对这条路线感兴趣,请阅读本文。 如果您的git版本无法使用git分支--show

当我在太多的分支上工作时,我遇到了一个问题,需要花费大量的时间才能找到我正在处理的当前分支。是否有一种方法可以在使用
git branch
命令时显示的列表顶部列出当前分支?

如果您只想要签出的分支,请使用
git branch--show current

您是否考虑过自定义git提示符,使其显示当前分支

这是我的git提示符的样子,表明我在主分支上,这对我来说是一个巨大的时间节省,因为我总是知道我当前在哪个分支上

如果您对这条路线感兴趣,请阅读本文。

如果您的git版本无法使用git分支--show current命令,您可以使用以下命令之一:

$ git checkout master

$ git rev-parse --symbolic-full-name HEAD
refs/heads/master
$ git rev-parse --abbrev-ref HEAD
master

$ git symbolic-ref HEAD
refs/heads/master
$ git symbolic-ref --short HEAD
master
参考官方文件:

  • 这类似于--symbol,但它省略了不是ref的输入(即分支或标记名;或者更明确地消除了“heads/master”形式的歧义,当您希望在有一个不幸命名的标记“master”时命名“master”分支),并将其显示为完整的ref名称(例如“refs/heads/master”)

  • 对象名称的非歧义短名称。[……]

  • 给定一个参数,读取给定符号ref引用的分支头,并输出其相对于
    .git/
    目录的路径。通常,您会将
    HEAD
    作为
    参数,以查看工作树所在的分支

  • 将的值显示为符号参考时,请尝试缩短该值,例如从
    refs/heads/master
    master

请注意,
git rev parse
解决方案与分离的
HEAD
模式
是“兼容”的,也就是说,如果当前没有签出分支,并且
HEAD
仅指向一个SHA1引用,上面考虑的两个
git rev parse
命令将只输出“HEAD”:


注意:
--show current
需要Git 2.22.0+(默认情况下在Debian 10上不可用)另一个选项是“
Git symbolic ref--short HEAD
”@randomdsddevel,但在分离HEAD的情况下该命令似乎不太“健壮”:
&&Git symbolic ref--short HEAD
fatal:ref HEAD不是一个符号ref
True,但是对于OP的用例,他们自然已经知道自己在一个他们签出的分支上。OK@RandomDSdevel:甚至说:“通常你会给
HEAD
作为参数,以查看你的工作树在哪个分支上。”因此,它确实可以被视为另一个被接受的答案,对于不支持
Git分支的较旧版本的Git,显示当前的
。顺便说一句,如果你愿意的话,请随意建议编辑我的答案。我刚刚重构了我的答案,还提到了
git symbolic ref
(以及git scm文档的链接),谢谢@RandomDSdevel的建议。
$ git checkout 56e23844e80e6d607ad5fa56dfeedcd70e97ee70
Note: checking out '56e23844e80e6d607ad5fa56dfeedcd70e97ee70'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
[…]

$ git rev-parse --symbolic-full-name HEAD
HEAD
$ git rev-parse --abbrev-ref HEAD
HEAD
$ git rev-parse HEAD
56e23844e80e6d607ad5fa56dfeedcd70e97ee70