如何在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存储库并添加了一个示例工作流)。