使用 Git 和 Yarn Package.json 脚本

Posted

技术标签:

【中文标题】使用 Git 和 Yarn Package.json 脚本【英文标题】:Using Git and Yarn Package.json script 【发布时间】:2019-12-25 16:00:10 【问题描述】:

我正在创建一个 package.json 脚本以使用 yarn 发送 git add . git commit -m "update" git push

我尝试使用一行按顺序发送上面的代码,但 git 不将其理解为不同的命令

我想要达到的目标:

"scripts": 
     "push": "git add . git commit -m \"update\" git push"

yarn push // should send script above

是否可以在终端上发送多个 git 命令?

【问题讨论】:

【参考方案1】:

您的 yarn 脚本在后台生成了一个 shell 进程,因此基本上您必须使用与直接通过 shell 使用的语法相同的语法。

在大多数 shell 中,您使用 && 链接命令,即 && 允许您根据前一个命令是否成功完成来执行某些操作 - 这就是为什么您倾向于将其链接为 do_something && do_something_else_that_depended_on_something

所以你的解决方案是:

"push": "git add . && git commit -m \"update\" && git push"

【讨论】:

【参考方案2】:

您可以使用&&& 分隔符向终端发送多个命令。使用双 && 将阻止下一个命令运行,除非第一个命令成功。


  "scripts": 
    "push": "git add . && git commit -m \"update\" && git push"
  

附带说明,您还可以将添加和提交合并到一个命令中,git commit -am "update" 将添加并提交所有更改。

【讨论】:

以上是关于使用 Git 和 Yarn Package.json 脚本的主要内容,如果未能解决你的问题,请参考以下文章

使用 yarn berry 时将 .yarn 目录提交到 git

服务端和客户端的 Package.json

如何解决 yarn.lock 中的 git 冲突

在托管 git 子模块的 docker 中使用 Yarn

package.json的所有配置项及其用法,你都熟悉么

如何为 Git, npm,Yarn 设置代理