使用 git branch
命令只能获取一个分支作为“当前”分支,即使检出的提交匹配多个分支。
像 tig
这样的工具会显示指向相同提交的所有分支。例如:
master upstream/master origin/master
我该如何从git
本身中提取这些信息?
我希望在我的提示符上看到这些信息(当我正在推出代码时,知道我的工作副本与upstream/master一致对我很重要)。是否有任何命令行工具可以提供这些信息?
目前,我的bash提示符包括:
/usr/bin/git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
这将只显示“(master)”(即本地分支)。
git status
命令可以告诉你当前分支相对于它所跟踪的分支的状态,而添加分支信息到提示符的工具通常可以配置为显示该信息。虽然多个分支可以使用某个提交作为其头,但只有一个(被检出的分支)会在下一次提交时更新;这正是检出分支的含义:下一次提交使用该分支的头作为其父提交并更新分支指针。 - chepnerHEAD
引用所指向的提交(当前检出分支的最新提交)的分支。这就是他使用jthill答案中的命令获得的内容。 - David Ferenczy Rogožan