Bash/Git-如何使用当前Git分支名称生成脚本

Bash/Git-如何使用当前Git分支名称生成脚本,bash,git,Bash,Git,bash脚本编程新手。通过LinuxAcademy从介绍视频中了解到一些简单的东西 我希望将我当前的Git分支名称作为变量拉入脚本,并使用该变量创建目录 从那以后,我想我可以自动化剩下的过程 还没有剧本,但我知道我想要它做什么;这是用通俗易懂的语言写的 cd somedir/dir git分支pull name作为变量 mkdir作为分支名称变量 cd新目录 touch xyz.html mkdir css img cd css touch xyz.css reset.css cd../。。 有

bash脚本编程新手。通过LinuxAcademy从介绍视频中了解到一些简单的东西

我希望将我当前的Git分支名称作为变量拉入脚本,并使用该变量创建目录

从那以后,我想我可以自动化剩下的过程

还没有剧本,但我知道我想要它做什么;这是用通俗易懂的语言写的

cd somedir/dir git分支pull name作为变量 mkdir作为分支名称变量 cd新目录 touch xyz.html mkdir css img cd css touch xyz.css reset.css cd../。。 有两种不同的好方法,也有一些不好的方法

您会发现,最常见的坏方法是此主题的变体:

将其替换为:

branch=$(git rev-parse --abbrev-ref HEAD)
注意,如果头被分离到一个正常的状态,这意味着根本不在任何分支上,通常发现,例如,当你处于一个尚未完成的重新基的中间时,这只打印头。使用它作为分支名称通常是有效的,并且做的事情是正确的,所以只要这样就行了。这个切割版的打印头不起作用

另一种方法是:

branch=$(git symbolic-ref --short HEAD) || exit
如果你喜欢的话,你可以做得更漂亮。使用此变体,如果您不在分支上,如果您处于分离头模式,git symbolic ref命令将产生投诉:

fatal: ref HEAD is not a symbolic ref
| | exit子句将使脚本立即终止,而不是继续使用$branch,就好像它不是有效的分支名称一样。如果使用文字字符串头而不是实际的分支名称是错误的,请使用此代码片段。

有两种不同的好方法,也有许多不好的方法

您会发现,最常见的坏方法是此主题的变体:

将其替换为:

branch=$(git rev-parse --abbrev-ref HEAD)
注意,如果头被分离到一个正常的状态,这意味着根本不在任何分支上,通常发现,例如,当你处于一个尚未完成的重新基的中间时,这只打印头。使用它作为分支名称通常是有效的,并且做的事情是正确的,所以只要这样就行了。这个切割版的打印头不起作用

另一种方法是:

branch=$(git symbolic-ref --short HEAD) || exit
如果你喜欢的话,你可以做得更漂亮。使用此变体,如果您不在分支上,如果您处于分离头模式,git symbolic ref命令将产生投诉:

fatal: ref HEAD is not a symbolic ref

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

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

git rev-parse --abbrev-ref HEAD

以其简短形式输出电流支路

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

git rev-parse --abbrev-ref HEAD

以其简短形式输出电流支路

sed-n的//^[*][//p'<@DavidC.Rankin git有足够的工具来避免分析git分支的输出。没有任何参数,这就是为什么在注释中列出了与sed结合的进程替换技术,而不是作为答案。sed-n的//^[*][]//p'<@DavidC.Rankin git有足够的工具来避免对git分支的输出进行解析。这里没有任何争论,这就是为什么在评论中列出了sed与进程替换相结合的技术,而不是作为答案。我想我理解。因此,如果我刚刚在本地机器上创建了一个新分支,我应该能够使用branch=$git rev parse-abbrev ref HEAD。但是,如果我处于一个更复杂的情况下,头部可能处于分离状态,即在重新基线期间,这将不会起作用,因为变量只会读取头部。通过使用符号ref并调用-short HEAD,脚本将短路。凉的我想我明白了!我想我明白了。因此,如果我刚刚在本地机器上创建了一个新分支,我应该能够使用branch=$git rev parse-abbrev ref HEAD。但是,如果我处于一个更复杂的情况下,头部可能处于分离状态,即在重新基线期间,这将不会起作用,因为变量只会读取头部。通过使用符号ref并调用-short HEAD,脚本将短路。凉的我想我明白了!