Bash / Git-如何使用当前的git分支名称制作脚本

时间:2019-07-01 20:39:10

标签: bash git

bash脚本新手。足够了解如何通过LinuxAcademy的介绍性视频运行简单的操作。

我想将当前的Git分支名称作为变量提取到脚本中,并使用该变量创建目录。

从那里开始,我认为我可以使其余过程自动化。

还没有脚本,但是我知道我想要它做什么;这是简单的语言。

  1. cd somedir / dir
  2. git分支(将名称拉为变量)
  3. mkdir(作为分支名称变量)
  4. cd(newdir)
  5. 触摸xyz.html
  6. mkdir css img
  7. cd css touch xyz.css reset.css
  8. cd ../..

2 个答案:

答案 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)

在bash上下文中,您将使用一个简单的git命令

git rev-parse --abbrev-ref HEAD

以简短形式输出电流分支。 (doc