通过GitHub操作将Lerna Monorepo发布到NPM时发生Git错误

通过GitHub操作将Lerna Monorepo发布到NPM时发生Git错误,git,github,npm,lerna,github-actions,Git,Github,Npm,Lerna,Github Actions,我使用以下GitHub操作(新的YAMLversion)工作流从我的lernamonorepo发布包,以推送到master: name: CD on: push: branches: - master jobs: deployPackages: name: Deploy Packages runs-on: ubuntu-latest steps: - uses: actions/checkout@master

我使用以下GitHub操作(新的
YAML
version)工作流从我的
lerna
monorepo发布包,以推送到
master

name: CD

on:
  push:
    branches:
      - master

jobs:

  deployPackages:
    name: Deploy Packages
    runs-on: ubuntu-latest
    steps:

      - uses: actions/checkout@master

      - name: Checkout master
        run: git checkout master

      - name: Install
        uses: nuxt/actions-yarn@master
        with:
          args: install

      - name: Build
        uses: nuxt/actions-yarn@master
        with:
          args: build

      - name: Lint
        uses: nuxt/actions-yarn@master
        with:
          args: lint

      - name: Test
        uses: ianwalter/puppeteer@v1.0.0
        env:
          CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
        with:
          entrypoint: yarn
          args: test:ci

      - name: Deploy Packages
        uses: nuxt/actions-yarn@master
        env:
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
          DEPLOYING_USER_NAME: ${{ secrets.DEPLOYING_USER_NAME }}
          GH_PAT: ${{ secrets.GH_PAT }}
        with:
          args: deploy:ci

      - name: Build Docs
        uses: nuxt/actions-yarn@master
        with:
          args: docs

      - name: Deploy Docs
        uses: maxheld83/ghpages@v0.2.1
        env:
          BUILD_DIR: _site/
          GH_PAT: ${{ secrets.GH_PAT }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

deploy:ci
npm脚本执行以下bash脚本:

echo“使用注册表进行身份验证…”
npm配置集注册表//registry.npmjs.org/:\u authToken=$npm\u TOKEN-q
echo“正在添加Git远程…”
git远程rm源
git remote add origin“https://$DEPLOYING\u用户名:$GH_PAT@github.com/范围/REPO_NAME.git“
git获取
git标记-d主控
echo“配置CI Git用户…”
git config--全局user.emailoctobot@github.com
git config--全局user.name GitHub操作
echo“发布包…”
npx勒纳出版公司\
--消息“琐事:发布新版本”\
--对
这将导致以下错误:

lerna info execute Skipping releases
lerna info git Pushing tags...
lerna ERR! Error: Command failed: git push --follow-tags --no-verify origin master
lerna ERR! error: src refspec refs/heads/master matches more than one.
lerna ERR! fatal: The remote end hung up unexpectedly
lerna ERR! error: failed to push some refs to 'https://***:***@github.com/SCOPE/REPO_NAME.git'
lerna ERR! 
lerna ERR!     at makeError (/github/workspace/node_modules/execa/index.js:174:9)
lerna ERR!     at Promise.all.then.arr (/github/workspace/node_modules/execa/index.js:278:16)
导致上述错误的原因是什么?

您看到的错误“src refspec refs/heads/master匹配多个版本”,意味着您尝试推送的内容匹配多个版本。如果给出的refspec是,比如说,
master
,那么可能的情况是,您有一个分支和一个名为
master
的标记,Git不知道要推哪个

在这种情况下,可能既有名为
master
的分支和标记,也有名为
refs/heads/master
master
分支)和
refs/heads/refs/heads/master
(即
refs/heads/master
分支)或
refs/tags/refs/heads/master/master
(这是
refs/heads/master
标记),Git感到困惑


看起来您正试图删除脚本中的
主标记,这可能是问题的根源。您可能希望修复导致创建该标记的任何原因,以便不再存在此问题。但是,如果没有看到您的回购协议,很难确切地说原因是什么。

git-tag-l | grep master
没有输出,因此我没有
master
标记。行
git tag-d master
是避免此错误的天真尝试,可以忽略。基本上,为了将标记推送到repo(lerna工作流的一部分),我需要根据