程序猿Git项目代码自动提交神器-万能shell版

一,概述

万能shell版,对git项目无任何要求。

二,环境准备

云主机,centos7系统,安装组件:git

组件作用
git源码下载
crontab定时作业列表,linux内置,一般无需安装

安装git

#安装git
yum install -y git

三,项目代码

任意项目代码,通过git下载代码到任意目录

1. 示例项目

https://gitcode.com/00fly/demo/tree/main
示例目录: /work/abc/gitcode/abc

mkdir -p /work/abc/gitcode/abc
cd  /work/abc/gitcode/abc

#下载git项目源码
git clone https://gitcode.com/00fly/demo.git

2. 配置项目用户名、密码(个人令牌)

下面的代码需要进入git项目目录里面执行

#当前git项目代码目录保存
cd  /work/abc/gitcode/abc/demo
git config user.name 00fly
git config user.email 00fly@noreply.gitcode.com
git config credential.helper store

可参考 程序猿Git项目代码自动提交神器-shell版 相关章节。
保证设置后git提交代码无需输入用户名、密码

四,运行

重要:一定要在git项目当前目录操作

#wget网络下载start.sh保存到git项目当前目录
cd /work/abc/gitcode/abc
wget https://gitee.com/00fly/git-cron/raw/master/all-in-one-cron-push.sh -O start.sh

#测试
sh start.sh

start.sh

#!/bin/sh
# defines variable
git=`ls -d */` && path=`pwd` && gitpath=$path/$git

# git pull
cd $gitpath && git pull \
&& 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

五,配置定时任务

1. 配置定时任务

#查看作业任务
crontab -l

#编辑作业任务
crontab -e

添加内容
0 */1 * * * cd /work/abc/gitcode/abc&&sh start.sh每1小时执行一次

或者

*/5 * * * * cd /work/abc/gitcode/abc&&sh start.sh每5分钟执行一次

0 */4 * * * cd /work/abc/gitcode/abc&&sh start.sh每4小时执行一次


有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值