繁体   English   中英

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

[英]Bash / Git - How to make a script using current git branch name

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

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

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

还没有脚本,但是我确实知道我想做什么。 这里用简单的语言。

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

有两种不同的方法可以做到这一点,还有许多不好的方法。

您会发现的最常见的坏方法是对该主题的一种更改:

 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 || exit子句将使您的脚本立即终止,而不是继续使用$branch ,就好像它不是有效的分支名称一样。 如果使用文字字符串HEAD而不是实际的分支名称是错误的事情,请使用此代码片段。

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

git rev-parse --abbrev-ref HEAD

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM