git - 与通常的手动提交并行,将自动 git 提交创建到仅为他们创建的分支中
问题描述
除了我在项目中进行的常规手动 git 提交之外,我还想开始添加自动提交,例如每 30 分钟一次。
这些自动提交应该与正常提交明显分开。我在考虑两种方法:
rsync 将除任何与 git 相关的文件和目录之外的所有文件同步到另一个目录,并让该目录拥有自己的存储库,这会在 master 分支上创建自动提交。
创建一个标记为“自动”的新分支并提交到该分支。
第一种方法很简单,但我想测试第二种方法是否不是更好的选择,但我不知道该怎么做。
我怎样才能一步一步地提交到那个“自动”分支,然后确保如果我创建一个手动提交,它的行为就像一个正常的提交,就好像那个“自动”分支不存在一样。
甚至应该使手动提交不仅包含上次自动提交之间的差异,还包含自上次手动提交以来的全部更改。
自动提交应该只包含自上次提交以来的更改,无论是手动提交还是自动提交(但如果忽略最后一次手动提交也可以)。
只有在自上次提交后进行了更改时才应创建自动提交,无论是手动提交还是自动提交。
还是第二种方法不好,以至于我什至不应该考虑它?我可能会使用 Python 来dulwich
实现这种自动化。
解决方案
您可以使用边带索引并直接构建提交,(手指到文本框警告......)
#!/bin/sh
base=`git rev-parse 2>&- timed-commits || git rev-parse @`
GIT_INDEX_FILE=`git rev-parse --git-dir`/timed-index || { echo couldn\'t get git dir; exit; }
export GIT_INDEX_FILE
while sleep $((30*60)); do
git add .
git update-ref -m 'automatic timed commit' refs/heads/timed-commits $(
git commit-tree -p $base -m 'timed commit' `git write-tree`
)
done &
将git add .
添加在您运行它的任何工作树中未被忽略的所有内容。要仅添加已跟踪的内容,请切换到git add -a
.
推荐阅读
- javascript - AngularJS 指令在编译并插入 DOM 后不会调用链接
- generics - 如何根据 Rust 中的泛型选择常量?
- python - 尝试从 HTML (Ajax) 运行 Python 脚本时出错
- typescript - TypeScript stepUp 方法在输入类型号上引发错误
- linq - 使用 LINQ 基于行比较连接行
- angular - 角度离子样式更改
- c++ - 混淆从“int []数组”到“指向int的指针”的显式衰减?
- html - 如何将导航设置为不透明
- sql - PostgreSQL 10.1 不正确的除法输出
- python - 循环中引用的 Python 更新变量