是否有一个Git命令等价于:
git branch | awk '/\*/ { print $2; }'
是否有一个Git命令等价于:
git branch | awk '/\*/ { print $2; }'
当前回答
使用Git 2.22(2019年第二季度),你将有一个更简单的方法:Git分支——show-current。
参见daniel Umanovskis (Umanovskis)的commit 0ecb1fc(2018年10月25日)。 (由Junio C Hamano合并- gitster -在提交3710f60, 2019年3月7日)
分支:引入——show-current显示选项
当使用——show-current调用时,git分支将打印当前 分支名称和终止。 只有实际的名字被打印出来,没有参考/头。 在分离HEAD状态下,没有输出。 用于脚本和交互式/信息性使用。 与git的branch——list不同,不需要过滤就可以获得 分支的名字。
查看2018年10月Git邮件列表上的原始讨论和实际补丁。
警告:正如Olivier在评论中提到的:
这并不是在任何情况下都有效! 例如,当你在子模块中,它就不起作用了。 'git symbol -ref -short HEAD'总是有效的。
其他回答
我想这应该很快,可以与Python API一起使用:
git branch --contains HEAD
* master
为了完整起见,至少在Linux上,echo $(__git_ps1)应该用圆括号括起当前分支的名称。
这在某些情况下可能很有用,因为它不是Git命令(但依赖于Git),特别是用于设置Bash命令提示符以显示当前分支。
例如:
/mnt/c/git/ConsoleApp1 (test-branch)> echo $(__git_ps1)
(test-branch)
/mnt/c/git/ConsoleApp1 (test-branch)> git checkout master
Switched to branch 'master'
/mnt/c/git/ConsoleApp1 (master)> echo $(__git_ps1)
(master)
/mnt/c/git/ConsoleApp1 (master)> cd ..
/mnt/c/git> echo $(__git_ps1)
/mnt/c/git>
喜欢别名的同学: 将以下文件放到你的.zshrc中,这样你就可以更容易地获得git命令流:
alias gpsu="git push -set-upstream origin $(git symbol -ref -short HEAD)"
使用Git 2.22(2019年第二季度),你将有一个更简单的方法:Git分支——show-current。
参见daniel Umanovskis (Umanovskis)的commit 0ecb1fc(2018年10月25日)。 (由Junio C Hamano合并- gitster -在提交3710f60, 2019年3月7日)
分支:引入——show-current显示选项
当使用——show-current调用时,git分支将打印当前 分支名称和终止。 只有实际的名字被打印出来,没有参考/头。 在分离HEAD状态下,没有输出。 用于脚本和交互式/信息性使用。 与git的branch——list不同,不需要过滤就可以获得 分支的名字。
查看2018年10月Git邮件列表上的原始讨论和实际补丁。
警告:正如Olivier在评论中提到的:
这并不是在任何情况下都有效! 例如,当你在子模块中,它就不起作用了。 'git symbol -ref -short HEAD'总是有效的。
$ git rev-parse --abbrev-ref HEAD
master
这应该适用于Git 1.6.3或更新版本。