📜  查找在 github 操作中更改的文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:26:37.460000             🧑  作者: Mango

查找在 GitHub 操作中更改的文件 - Shell-Bash

在 GitHub 操作中,我们经常需要查找更改的文件。本文将介绍如何通过 Shell-Bash 命令行查找更改的文件,以便于更好地进行版本控制和管理。

利用 Git 命令查找更改的文件

Git 是一个常用的版本控制工具,可以用于查找更改的文件。使用 git diff 命令可以查看工作目录和仓库之间的差异。我们可以使用 -name-only 参数输出更改的文件列表。

git diff --name-only HEAD^ HEAD

该命令将会显示当前提交和上一次提交之间更改了哪些文件。如果要查找某个特定的提交,需要将 HEAD^ 改为具体的 commit ID。

利用 GitHub API 查找更改的文件

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 token
  • YOUR_USERNAME:GitHub 用户名
  • YOUR_REPO:仓库名称
  • YOUR_COMMIT_SHA:提交 SHA

该命令将会输出指定提交中所有更改过的文件。

利用 GitHub Actions 查找更改的文件

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 操作中更改的文件的介绍,希望对大家有所帮助。