Я получаю это:
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/[email protected]
- name: Configure Node.js
uses: actions/[email protected]
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/[email protected]
with:
author_name: Docs Builder
author_email: [email protected]
message: 'Updated build'
add: '*.md'
Вы проверяли свой репозиторий в своем действии? Было бы легче помочь вам, если бы вы показали нам неудачный рабочий процесс. — person alien schedule 28.01.2021
Я не могу показать сбой рабочего процесса, что это частное репо. Нет, я не проверял, как мне это сделать? Это конкретная ветка, текущая ветка PR. Обновлено с моей конфигурацией. — person alien schedule 28.01.2021
Под неудачным рабочим процессом я имел в виду опубликованное вами определение рабочего процесса. Спасибо! Похоже, вы проверяли репозиторий (с помощью действия actions/[email protected]
). Дай мне посмотреть, смогу ли я воспроизвести неудачу … — person alien schedule 28.01.2021
Если вы посмотрите документацию по действию actions / checkout @ v2, вы увидите по умолчанию он выполняет неглубокий клон с одной ревизией:
Поскольку он выбирает только одну ревизию,
HEAD^
не существует.Вы можете исправить это, установив параметр
fetch-depth
в действии оформления заказа. Если установить значение0
, будет извлечена вся история; в качестве альтернативы, для того, что вы делаете, вы, вероятно, могли бы просто установить его на2
:как получить весь репозиторий github? Я хочу сделать что-то еще, где я просматриваю всю историю коммитов. — person alien; 29.01.2021
Это будет установка на 0, чтобы получить всю историю — person alien; 29.01.2021
Я попробовал это, и это не сработало. Также есть проблема, когда они говорят, что это невозможно. github.com/actions/checkout/issues / 161 ????♂️ — person alien; 07.02.2021
@hrdwdmrbl вроде работает нормально. Я попробовал это на в одном из моих репозиториев, и действие
actions/[email;protected]
было проверено из всей истории репозитория. — person alien; 07.02.2021@larsks Я не вижу, где вы запускаете git diff ни в одном из ваших двух рабочих процессов, test-and-publish.yml или test-only.yml — person alien; 08.02.2021
@hrdwdmrbl Текущие действия — нет, но если вы перейдете по ссылке, которую я опубликовал, вы сможете увидеть команды, которые были запущены, и результат, который они сгенерировали. Например. разверните «Выполнить действия / checkout @ v2», затем разверните вставку «Выполнить действия / checkout @ v2», чтобы увидеть параметры. Разверните «Выполнить git log», чтобы увидеть команду и выходные данные, показывающие полный журнал git, а не журнал из неглубокого репозитория. — person alien; 08.02.2021
@hrdwdmrbl Я сделал вам полный пример здесь (я взял репозиторий GNU hello и добавил пример рабочего процесса). — person alien; 08.02.2021
@larsks Хорошо, я воспроизвел проблему с вашим кодом. ЕСЛИ вы укажете конкретную глубину выборки, это не сработает. проверить — person alien; 09.02.2021
Помещение
origin/
перед именем ветки сработало для меня