在每次 GitHub 推送时自动更新 README 中的 “Last Updated” 日期

发布: (2026年1月13日 GMT+8 16:01)
3 min read
原文: Dev.to

Source: Dev.to

Cover image for Auto-Update “Last Updated” Date in README on Every GitHub Push

在 GitHub Push 时自动更新 “Last Updated” 日期

本指南展示了如何在每次向 GitHub 推送代码时,使用 GitHub Actions 自动更新 README.md 中的 Last updated 日期。

为什么需要这样做

GitHub 不会 在推送时自动修改文件内容。
如果你想让类似下面的行:

_Last updated: 2026-01-14_

保持为最新,就需要自动化。

最终效果

设置完成后:

  • 每次推送都会触发一个 GitHub Action。
  • README 中的日期会自动更新。
  • github-actions 创建一次提交。
  • 无需手动编辑。

Step 1️⃣ 在 README 中添加占位符

在你的 README.md(必须位于仓库根目录)中加入:

_Last updated: AUTO_

⚠️ 此行必须 完全匹配(区分大小写)。

Step 2️⃣ 创建 GitHub Actions 文件夹

在仓库中创建以下结构:

.github/
└── workflows/

Step 3️⃣ 创建工作流文件

创建文件:

.github/workflows/update-date.yml

粘贴以下内容:

name: Update README date

on:
  push:
    branches:
      - main
      - master

jobs:
  update-date:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repo
        uses: actions/checkout@v4
        with:
          persist-credentials: true

      - name: Update date
        run: |
          DATE=$(date +"%Y-%m-%d")
          sed -i "s/_Last updated:.*_/_Last updated: ${DATE}_/" README.md

      - name: Commit and push
        run: |
          git config user.name "github-actions"
          git config user.email "github-actions@github.com"
          git add README.md
          git commit -m "chore: auto update last updated date" || echo "No changes"
          git push

Step 4️⃣ 启用工作流权限(非常重要)

  1. 前往 Repo → Settings → Actions → General
  2. Workflow permissions 下,选择 Read and write permissions
  3. 点击 Save

如果不这样设置,工作流会悄然失败。

Step 5️⃣ 触发工作流

工作流仅在 新推送 时运行。做一次小改动并推送:

git add README.md
git commit -m "trigger workflow"
git push

Step 6️⃣ 验证

  • 打开仓库的 Actions 标签页。
  • 打开最新的工作流运行,确保所有步骤都是绿色的。
  • 查看 README.md;现在应该看到类似:
_Last updated: 2026-01-14_

TL;DR

  • GitHub 不会自动更新文件。
  • GitHub Actions 可以做到。
  • 一个小工作流即可保持 README 日期的准确性。
  • 设置完成后无需手动操作。
Back to Blog

相关文章

阅读更多 »

我对 GitHub Actions 痛恨至深

!Alexander Przemysław Kamińskihttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3...