此刻我使用
git branch | grep \* | cut -d ' ' -f2-
但是执行时间太慢了。
是否有更快的方法来生成相同的输出?
我的意思是相同输出(我没有见过不喜欢的情况),例如头颅脱落
(HEAD detached at SHA)
重新定基
(no branch, rebasing BRANCH)
等
我已经尝试过
cat .git/HEAD | cut -d '/' -f3
但是我知道有时候,例如如果重新定基,那将行不通。然后,我将不得不检查是否存在.git/REBASE_HEAD
?还有从任何子目录中找到.git
目录的问题。最后,我不知道这样的解决方案是否会更快,至少(如果我(凭经验))不是我自己编写代码的解决方案。
答案 0 :(得分:3)
您还可以使用git rev-parse
:(但不幸的是,对于其他答案,这不不能处理进程内变基的情况) < / p>
git rev-parse --abbrev-ref HEAD
rev-parse
和symbolic-ref
都是管道命令,在执行时间方面可能非常接近。
答案 1 :(得分:2)
您也可以使用git symbolic-ref。但是,请小心,因为重新设置时,此不起作用。
summary(glm(cbind(Nsucc, Ntrys-Nsucc) ~ distance, family=binomial))
顺便说一句,这是我知道的简短命令,用于获取此信息(29个字符)
答案 2 :(得分:1)
我很惊讶它这么慢,但是您可以尝试一下。可能同样慢。
git status|head -n1|cut -d ' ' -f4
答案 3 :(得分:1)
除非必须绝对使用git命令,否则您只需从实际的.git
文件夹中读取分支名称即可。
cat .git/HEAD | cut -d '/' -f3
,当您不在任何分支中时(这也是其他情况),这会中断,在此期间它将返回您所在的提交的SHA(与其他分支不同)。我想不出其他任何情况,可能会中断。