bash脚本新手。足够了解如何通过LinuxAcademy的介绍性视频运行简单的操作。
我想将当前的Git分支名称作为变量提取到脚本中,并使用该变量创建目录。
从那里开始,我认为我可以使其余过程自动化。
还没有脚本,但是我知道我想要它做什么;这是简单的语言。
答案 0 :(得分:4)
有两种不同的 good 方法,还有许多 bad 方法。
您会发现最常见的坏方法是对此主题进行变体:
branch=$(git branch | grep '\*' | cut -d' ' -f2) # don't do this!
替换为:
branch=$(git rev-parse --abbrev-ref HEAD)
请注意,如果HEAD
是分离的(正常状态,通常意味着根本不在任何分支上,例如,当您在您尚未完成的重新设置中间),它仅打印HEAD
。使用此名称作为分支名称通常可以正常工作并且做正确的事情,因此只要确定就可以了。 (此版本的cut
打印(HEAD
,不起作用。)
另一种方法是:
branch=$(git symbolic-ref --short HEAD) || exit
(您可以根据需要将其设置为更高级)。使用此变体,如果您不在分支上(如果您处于分离的HEAD模式),则git symbolic-ref
命令将产生投诉:
fatal: ref HEAD is not a symbolic ref
和|| exit
子句将使脚本立即终止,而不是继续使用$branch
,就好像它不是有效的分支名称一样。如果使用文字字符串HEAD
而不是实际的分支名称是错误要做的事情,请使用此代码片段。
答案 1 :(得分:3)