赞
踩
在程序猿Git项目代码自动提交神器中,我们已经实现了git项目周期性自动提交代码功能,此实现太复杂,下面我们来借助shell 来实现精简版的Git项目代码自动提交功能。
云主机,centos7系统,安装组件:git
组件 | 作用 |
---|---|
git | 源码下载 |
crontab | 定时作业列表,linux内置,一般无需安装 |
#安装git
yum install -y git
项目地址: https://gitcode.com/00fly/test
备用项目: https://gitee.com/00fly/git-cron
登录后点击个人设置–> 访问令牌(经典)
提交代码前需要先配置用户名和密码(也就是个人令牌)
00fly、00fly@noreply.gitcode.com
请替换为自己的实际值
任意目录执行
#全局保存
git config --global user.name 00fly
git config --global user.email 00fly@noreply.gitcode.com
git config --global credential.helper store
项目保存目录执行
#需要先进入目录执行
mkdir /work/gitcode && cd /work/gitcode
git clone https://gitcode.com/00fly/test.git
#当前目录保存
cd /work/gitcode/test
git config user.name 00fly
git config user.email 00fly@noreply.gitcode.com
git config credential.helper store
上面的步骤只需执行一次
使用git下载
mkdir /work/gitcode && cd /work/gitcode
git clone https://gitcode.com/00fly/test.git
执行后,会拷贝all-in-one-cron.sh、all-in-one-cron-push.sh到上层目录
cd /work/gitcode/test && sh init.sh
init.sh
#!/bin/bash
cp all-in-one-cron*.sh .. && dos2unix ../*.sh && chmod +x ../*.sh
首次执行sh all-in-one-cron-push.sh
需要输入用户名
和密码(个人令牌)
cd /work/gitcode && sh all-in-one-cron-push.sh
all-in-one-cron-push.sh主要实现了3步骤
all-in-one-cron-push.sh
#!/bin/sh # defines variable git=`ls -d */` && path=`pwd` && gitpath=$path/$git # git pull cd $gitpath && git pull && sh init.sh \ && now=`git log -1 --format="%at"` \ && last=`cat $path/last` # check timestamp, if changed print git log if [ ! $last ] || [ $now -gt $last ] ; then echo "git changed!!" && echo $now>$path/last && echo `git log -1` else echo "git not change" fi # git push date > date.md if [ -n "$(git status -s)" ] ; then git add . git commit -m "update: `date +"%Y-%m-%d %H:%M:%S"` auto commit" git push fi
#查看作业任务
crontab -l
#编辑作业任务
crontab -e
添加内容
0 */1 * * * cd /work/gitcode&&sh all-in-one-cron-push.sh
每1小时执行一次
或者
*/5 * * * * cd /work/gitcode&&sh all-in-one-cron-push.sh
每5分钟执行一次
0 */4 * * * cd /work/gitcode&&sh all-in-one-cron-push.sh
每4小时执行一次
注意:直接写为0 */4 * * * /work/gitcode/all-in-one-cron-push.sh,crontab执行pwd结果为/root
可以查看 提交日志 判断任务是否运行成功。
各位调试时请使用自己的git项目仓库(可fork本文git)
有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!
-over-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。