有啥方法可以在特定时间自动提交 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 - 有没有办法只在特定目录中显示更改?