如何在github操作中运行git diff

如何在github操作中运行git diff,git,github-actions,Git,Github Actions,我明白了: Command failed: git diff --name-only HEAD^..HEAD fatal: ambiguous argument 'HEAD^..HEAD': unknown revision or path not in the working tree. 我想在我的分支中运行git diff--name only HEAD^..HEAD,以获得已更改文件的列表。它在本地工作,但不在GitHub操作上工作。我该怎么办 我的代码是: name: build on

我明白了:

Command failed: git diff --name-only HEAD^..HEAD
fatal: ambiguous argument 'HEAD^..HEAD': unknown revision or path not in the working tree.
我想在我的分支中运行
git diff--name only HEAD^..HEAD
,以获得已更改文件的列表。它在本地工作,但不在GitHub操作上工作。我该怎么办

我的代码是:

name: build
on:
  push:
    branches:
      - main
jobs:
  run:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repo
        uses: actions/checkout@v2
      - name: Configure Node.js
        uses: actions/setup-node@v2
        with:
          node-version: 14.x
      - name: Install dependencies
        run: yarn install
      - name: Publish file changes to Slack
        # HERE I run `git diff` in node.js process
        run: "SLACK_TOKEN=${{ secrets.GITHUB_TOKEN }} npx ts-node scripts/publishSlackUpdate"
      - name: Build TOC
        run: make toc
      - name: Commit build changes
        uses: EndBug/add-and-commit@v7
        with:
          author_name: Docs Builder
          author_email: docs@mysite.com
          message: 'Updated build'
          add: '*.md'

如果查看该操作的文档,您将看到它在默认情况下使用单个修订版执行浅克隆:

    # Number of commits to fetch. 0 indicates all history for all branches and tags.
    # Default: 1
    fetch-depth: ''
因为它只获取一个修订,所以没有
HEAD^

您可以通过在签出操作上设置
获取深度
选项来解决此问题。将其设置为
0
将获取整个历史记录;或者,对于您正在做的事情,您可以将其设置为
2

    steps:
      - name: Checkout repo
        uses: actions/checkout@v2
        with:
          fetch-depth: 2

您是否在操作中签出了存储库?如果你向我们展示失败的工作流程,你会更容易得到帮助。我无法展示失败的工作流程,因为这是私人回购。不,我没有查出来,我该怎么做?它在一个特定的分支机构,当前的公关分支机构。更新了我的配置。我所说的“失败的工作流”,是指您发布的工作流定义。谢谢看起来您确实签出了存储库(通过
操作)/checkout@v2
操作)。让我看看是否可以重现失败……如何获取整个github回购?我想在检查整个提交历史记录时执行其他操作。这将是“将其设置为0将获取整个历史记录”。我尝试了此操作,但没有成功。还有一个问题,他们说@hrdwdmrbl不可能,它似乎工作得很好。我试穿了它,并尝试了
操作/checkout@v2
action签出了整个存储库历史。@hrdwdmrbl我为您提供了一个完整的示例(我抓取了GNU hello存储库并添加了一个示例工作流)。