在OSX上我想创建一个脚本,当文件发生变化时,会自动运行
git add [FILES CHANGED];
git commit -m "Changing ${file names}";
git push -u origin master"
我知道有fswatch,但这会使进程保持运行。
也许我可以尝试运行" git status"如果!="在分支主机上 什么都没有提交,工作目录清洁"然后自动推送到Github?
答案 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。