本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
devopsinfra/action-commit-push是一个功能强大的Docker镜像,作为GitHub Action使用,用于自动提交更改并推回至代码仓库。该镜像特别适用于自动化工作流,可与devops-infra/action-pull-request无缝集成,实现完整的自动化提交与PR流程。
force: true 现在使用 git push --force(破坏性变更)force_with_lease 用于更安全的强制推送,使用 --force-with-leaseamend: true 与 commit_message 来更改提交信息该镜像可从以下平台获取:
--force 和 --force-with-lease- name: 运行Action uses: devops-infra/action-commit-push@v1.0.0 with: github_token: "${{ secrets.GITHUB_TOKEN }}" add_timestamp: true amend: false commit_prefix: "[AUTO]" commit_message: "自动提交" force: false force_with_lease: false no_edit: false organization_domain: github.com target_branch: update/version
| 输入变量 | 是否必需 | 默认值 | 描述 |
|---|---|---|---|
github_token | 是 | "" | 用于推送代码的GitHub个人访问令牌 |
add_timestamp | 否 | false | 是否在新分支名称中添加时间戳。使用格式 %Y-%m-%dT%H-%M-%SZ |
amend | 否 | false | 是否修正前一次提交 (--amend)。可与 commit_message 结合使用以更改提交消息 |
commit_prefix | 否 | "" | 添加到提交消息的前缀。与 commit_message 组合使用 |
commit_message | 否 | "" | 要设置的提交消息。与 commit_prefix 组合使用。可与 amend 一起使用以更改提交消息 |
force | 否 | false | 是否使用强制推送 (--force)。仅在需要覆盖远程更改时使用。有潜在风险 |
force_with_lease | 否 | false | 是否使用带租约的强制推送 (--force-with-lease)。比 force 更安全,因为它会检查远程更改。对于 actions/checkout 需要设置 fetch-depth: 0 |
no_edit | 否 | false | 使用修正时是否不编辑提交消息 (--no-edit) |
organization_domain | 否 | github.com | GitHub企业版域名 |
target_branch | 否 | 当前分支 | 要推送代码的新分支名称。如果不存在则创建分支 |
| 输出变量 | 描述 |
|---|---|
files_changed | 已更改文件列表,通过 git diff --staged --name-status 命令返回 |
branch_name | 代码被推送至的分支名称 |
提交并推送更改到当前检出的分支。
name: 运行Action on: push jobs: change-and-push: runs-on: ubuntu-latest steps: - name: 检出仓库 uses: actions/checkout@v5 - name: 修改文件 run: | find . -type f -name "*.md" -print0 | xargs -0 sed -i "s/foo/bar/g" - name: 提交并推送更改 uses: devops-infra/action-commit-push@v1.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} commit_message: "将foo替换为bar"
提交并推送更改到新分支,并使用 devops-infra/action-pull-request 创建拉取请求。
name: 推送更改并创建PR on: push jobs: change-and-push: runs-on: ubuntu-latest steps: - name: 检出仓库 uses: actions/checkout@v5 - name: 修改文件 run: | find . -type f -name "*.md" -print0 | xargs -0 sed -i "s/foo/bar/g" - name: 提交并推送更改 uses: devops-infra/action-commit-push@v.11.4 with: github_token: ${{ secrets.GITHUB_TOKEN }} commit_prefix: "[自动提交] " commit_message: "将foo替换为bar" - name: 创建拉取请求 uses: devops-infra/action-pull-request@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} body: "**自动化拉取请求**<br><br>将foo替换为bar" title: ${{ github.event.commits[0].message }}
当需要修正前一次提交并强制推送时(在手动提交中添加自动更改时非常有用)。
name: 修正并强制推送 on: workflow_dispatch: inputs: new_commit_message: description: '新的提交消息' required: true default: '更新的提交消息' jobs: amend-commit: runs-on: ubuntu-latest steps: - name: 检出完整历史的仓库 uses: actions/checkout@v5 with: fetch-depth: 0 # 对于force_with_lease是必需的 - name: 进行一些更改 run: | echo "附加内容" >> README.md - name: 修正并带租约强制推送 uses: devops-infra/action-commit-push@v1.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} commit_message: ${{ github.event.inputs.new_commit_message }} amend: true force_with_lease: true # 更安全的强制推送选项
使用 amend: true 时,有几种处理提交消息的选项:
更改提交消息:设置 commit_message 以提供新消息
- uses: devops-infra/action-commit-push@v1.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} commit_message: "修复文档中的拼写错误" amend: true force_with_lease: true
保留现有消息:设置 no_edit: true 以保留原始提交消息
- uses: devops-infra/action-commit-push@v1.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} amend: true no_edit: true force_with_lease: true
默认行为:如果两者都未设置,则使用"Files changed:"加上文件列表(当文件被修改时)
注意:即使没有文件更改,修正也能工作 - 仅更改提交消息时非常有用!
此操作提供两种不同场景的强制推送选项:
force_with_lease (推荐)git push --force-with-leaseactions/checkout 步骤中设置 fetch-depth: 0force (谨慎使用)git push --force重要:不要同时使用这两个选项。如果同时设置为 true,force_with_lease 优先。
使用特定版本标签运行Action。
name: 运行Action on: push: branches-ignore: master jobs: action-commit-push: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: devops-infra/action-commit-push@v1.0.0 id: 固定补丁版本 - uses: devops-infra/action-commit-push@v1.0 id: 固定次要版本 - uses: devops-infra/action-commit-push@v1 id: 固定主要版本
欢迎贡献!详见CONTRIBUTING。 本项目采用MIT许可证 - 详见LICENSE文件。
本项目采用MIT许可证 - 详见LICENSE文件。
如有任何问题或需要帮助,请:


免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429