gpt4 book ai didi

git - npm scripts/package.json - 只有当前在 git master 分支上时才运行

转载 作者:太空狗 更新时间:2023-10-29 14:41:54 24 4
gpt4 key购买 nike

我正在尝试制作一个脚本,只有当 master 是当前 checkout 的分支时才会运行...

我设法获得了分支名称:

git rev-parse --symbolic-full-name --abbrev-ref HEAD

但是把它放在脚本中,检查它的值并根据它做某事或其他事情并不顺利

"foo": "set branch=git rev-parse --symbolic-full-name --abbrev-ref HEAD | if [branch==master]; then echo \"yes\"; else echo \"no\"; fi;"

有什么想法吗?

最佳答案

以下将成功运行:

npm 脚本:

"scripts": {
"foo": "branch=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD); if [[ $branch == \"master\" ]]; then echo \"yes\"; else echo \"no\"; fi;"
},

解释:

  • git 命令包含在 $() 中 - 这被称为 command substitution .这意味着它将运行 git rev-parse ... 命令并将其输出分配给 branch 变量。
  • 随后,使用以下条件检查 branch 值:if [[ $branch ==\"master\"]];然后……

跨平台:

如果 npm run foo 命令在非 Bash 环境中执行,这显然会失败,例如 Windows cmd.exePowerShell。如果需要跨平台支持(我猜不是!),那么我建议在 node.js 脚本中处理此逻辑并利用 child_process.execSync()调用 git 命令。然后可以通过您的 npm 脚本调用 node.js

关于git - npm scripts/package.json - 只有当前在 git master 分支上时才运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51878517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com