📅  最后修改于: 2023-12-03 15:26:37.460000             🧑  作者: Mango
在 GitHub 操作中,我们经常需要查找更改的文件。本文将介绍如何通过 Shell-Bash 命令行查找更改的文件,以便于更好地进行版本控制和管理。
Git 是一个常用的版本控制工具,可以用于查找更改的文件。使用 git diff
命令可以查看工作目录和仓库之间的差异。我们可以使用 -name-only
参数输出更改的文件列表。
git diff --name-only HEAD^ HEAD
该命令将会显示当前提交和上一次提交之间更改了哪些文件。如果要查找某个特定的提交,需要将 HEAD^ 改为具体的 commit ID。
GitHub 提供了丰富的 API 接口,我们可以通过它来查找更改的文件。在使用 GitHub API 之前,需要先申请一个 personal access token。
以下示例使用 curl
命令来调用 GitHub API。
curl -H "Authorization: token YOUR_TOKEN" \
"https://api.github.com/repos/YOUR_USERNAME/YOUR_REPO/commits/YOUR_COMMIT_SHA" | \
jq '.files[] | select(.status == "modified") | .filename'
YOUR_TOKEN
:personal access tokenYOUR_USERNAME
:GitHub 用户名YOUR_REPO
:仓库名称YOUR_COMMIT_SHA
:提交 SHA该命令将会输出指定提交中所有更改过的文件。
GitHub Actions 是一种 CI/CD 解决方案,可以自动执行各种操作。我们可以使用它来查找更改的文件,并将结果发送到 Slack 或邮件等渠道。
以下示例是通过 GitHub Actions 实现查找更改的文件,并将结果发送到 Slack 的示例。
name: Find changed files
on: [push]
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Find changed files
run: |
git fetch --depth=1 origin +refs/heads/${{ github.head_ref }}:refs/remotes/origin/${{ github.head_ref }}
files=$(git diff --name-only origin/${{ github.base_ref }} origin/${{ github.head_ref }})
echo "::set-output name=files::$files"
- name: Send notification to Slack
if: always()
uses: rtCamp/action-slack-notify@v2.2
with:
status: ${{ job.status }}
fields: files=${{ env.files }}
slack_webhook: ${{ env.SLACK_WEBHOOK }}
该示例使用了 git diff
命令查找更改的文件,并使用了 set-output
将结果传递到环境变量中。随后,通过 action-slack-notify
动作将结果发送到 Slack。
以上是关于如何查找在 GitHub 操作中更改的文件的介绍,希望对大家有所帮助。