观察文件更改并向github添加更改?

时间:2015-02-18 14:08:27

标签: macos git

在OSX上我想创建一个脚本,当文件发生变化时,会自动运行

git add [FILES CHANGED]; 
git commit -m "Changing ${file names}"; 
git push -u origin master"

我知道有fswatch,但这会使进程保持运行。

也许我可以尝试运行" git status"如果!="在分支主机上 什么都没有提交,工作目录清洁"然后自动推送到Github?

2 个答案:

答案 0 :(得分:1)

如果您愿意放弃自动回复文件修改,您可以定期运行(例如,通过crontab条目或其他内容):

git add -u
git commit -m "Automatic update of modified files" && git push

git add -u将暂存任何已修改的文件,只有在提交修改时,“git commit”才会成功。

如果您还想要提取新文件,可以改用git add -A

答案 1 :(得分:0)

我知道这是一个旧线程,但是我也在寻找替代解决方案并找到了rerun2。也许对其他人也有用。

https://github.com/tartley/rerun2

摘自Tartley的自述文件:

  

每当内部发生文件系统修改事件时,它将运行COMMAND   您当前的目录(递归)。例如,它可以重新运行测试   每次您在编辑器中点击“保存”时。或者它可以重新生成   每次您保存源代码(例如,   Markdown或GraphViz点)。

     

COMMAND必须是单个参数才能重新运行,因此,如果它包含   空格,要么引用整个内容:

rerun "ls ~"

或逃脱它们:

rerun ls\ ~

如何实施:

如果您采用自己的代码,并将其放在update.sh脚本中:

#!/usr/bin/env bash
git add -u
git commit -m "Automatic update of modified files" && git push

使其可执行:

chmod u+x gitpush.sh

创建别名使事情变得简单:

alias gitpush=/path/to/gitpush.sh:

打开终端,转到您要观看的目录并运行命令:

rerun gitpush

现在,它将在该目录中的每次文件更改时执行gitpush。