有啥方法可以在特定时间自动提交 git 中的更改

Posted

技术标签:

【中文标题】有啥方法可以在特定时间自动提交 git 中的更改【英文标题】:Is there any way to commit changes in git automatically at specific time有什么方法可以在特定时间自动提交 git 中的更改 【发布时间】:2018-05-05 08:20:58 【问题描述】:

我想知道是否有任何方法可以根据特定时间自动提交在 git 中所做的更改。

假设如果我设置配置,它应该在每天凌晨 12:00 或一天中的特定时间提交存储库中存在的任何代码。

根据我搜索后的发现,每次保存文件时都有一种提交方式。但不是及时的自动提交。

【问题讨论】:

Making git auto-commit的可能重复 我不需要每次都记录所有更改(这会导致更多提交)。但所有更改都在特定时间(导致很少提交) 构建一个脚本并在 crontab 中启动它是一种方法。不知道有没有git scheduler...? 【参考方案1】:

正如 Nic5300 建议的那样,一个简单的方法是编写一个简单的脚本,由cron 在特定时间调用:

auto_commit.sh
=======================================
#!/bin/bash
MESSAGE="Auto-commit: $(date)"
REPO_PATH="/home/user/repo"
git -C "$REPO_PATH" add -A
git -C "$REPO_PATH" commit -m "$MESSAGE"

只需使用您想要的任何内容更新 REPO_PATH 和 MESSAGE。现在,您可以通过运行 crontab -e 将脚本添加到您的 crontab。

要在每晚午夜运行它,您的 crontab 应该如下所示:

* 0 * * * auto_commit.sh > /dev/null 2>&1

显然,您必须将该路径更新到保存脚本的位置。只要确保你有cron 正在运行(取决于你使用的初始化系统),你应该很高兴。如果您想更多地使用您的 crontab,请查看 https://crontab-generator.org。

【讨论】:

【参考方案2】:

您的 crontab 示例将在每分钟午夜开始执行 auto_commit.sh 脚本,持续 1 小时。要使其在每个午夜只运行一次,您需要:

   0 0 * * * auto_commit.sh > /dev/null 2>&1

【讨论】:

以上是关于有啥方法可以在特定时间自动提交 git 中的更改的主要内容,如果未能解决你的问题,请参考以下文章

Git changelog:如何将所有更改都添加到特定标记?

Git status - 有没有办法只在特定目录中显示更改?

有啥方法可以为 c# .NET 中的特定数据库表自动生成 BLL 类?

使用 git 查看对特定文件的更改

我可以使用 Git 以两种方式更改提交历史记录吗?

如何运行 git log 以仅查看特定分支的更改?