【问题标题】:How do I determine what branch/tag I have checked out in git?如何确定我在 git 中签出的分支/标签?
【发布时间】:2012-03-25 05:06:58
【问题描述】:

我使用git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git w/ 克隆我的源代码。然后我通过git checkout <tag name>git checkout origin/REL<release number> 指定一个特定的分支/标签。有时我会忘记我在哪个分支或标签上。

在 SVN 中,我会执行 svn info 来确定我正在使用的分支/标签(我意识到 git 对 branchtag 有不同的定义,但就我的目的而言,它们是相同的)。

如何确定我所在的分支/标签?

【问题讨论】:

    标签: git branch tagging


    【解决方案1】:
    git branch
    

    告诉你你在哪个分支(带有* 标记)。

    标签只是修订的名称,所以 Git 不会告诉你你“在”一个标签,但你可以使用 git name-rev HEAD 来了解它可能是什么。

    【讨论】:

    • git branch 只是给我:* (no branch) master。但是git name-rev HEAD 完全符合我的要求。
    • 你得到(no branch) 因为你不再“在一个分支上”。你有 git 所说的“分离的 HEAD”(正如有人指出的那样,如果你仔细想想,它是相当图形化的 :-))。无论如何,重要的是要记住“在分支上”,用 git 术语来说,要求你在分支的 tip 上。否则你就“分离”了。如果在“分离”时添加新提交,则会创建一个新的未命名分支。
    【解决方案2】:

    当前分支在git branch 的输出中标有*。示例:

    $ git branch
      branch1
    * branch2
      master
    

    【讨论】:

      【解决方案3】:

      如何确定我所在的分支/标签?

      首先,since Git 2.22 (Q2 2019),您有 git branch --show-current,它直接显示您当前签出的分支。

      其次,如果您在签出的工作树中,它不会显示任何内容 (created with git worktree add)

      为此,请检查 Git 2.23(2019 年第三季度),它的“git branch --list”学会了显示在连接到以“+”为前缀的同一存储库的其他工作树中签出的分支,类似于方式显示当前签出的分支 前面有“*”。

      例子:

      commit 6e93814commit ab31381commit 2582083(2019 年 4 月 29 日)Nickolai Belakovski (``)
      (由 Junio C Hamano -- gitster -- 合并于 commit 99eea64,2019 年 7 月 9 日)

      branch:在详细输出中添加 worktree 信息

      显示链接工作树中检出的引用的工作树路径

      git branch documentation 现在声明:

      当前分支将以绿色突出显示并标有星号。
      在链接的工作树中签出的所有分支都将以青色突出显示并标有加号。

      【讨论】:

        【解决方案4】:

        如果你使用 bash shell,你 can use __git_ps1 in your bash prompt 显示这个,例如:

        [me@myhost:~/code/myproject] (master)$ ls
        

        下载git-completion.bash~/.git-completion.bash

        然后在您的~/.bashrc 文件中,添加

        source ~/.git-completion.bash
        

        然后将您的 PS1 值设置为包括 $(__git_ps1 "(%s)") 在内的值,例如:

        PS1="[\u@\h:\w]\$(__git_ps1)\\$ "
        

        【讨论】:

        猜你喜欢
        • 2018-11-27
        • 2019-04-13
        • 2013-03-26
        • 1970-01-01
        • 2016-10-26
        • 2012-07-04
        • 1970-01-01
        • 2010-12-19
        相关资源
        最近更新 更多