当前位置: 首页 > news >正文

Git提交前时间检查

为了防止在本地看日志的时候,由于本地时间被修改,导致日志的时间存在非正确时间。通过以下脚本在提交前进行时间验证,只有是正确的时间才可以提交。
使用方法如下:

  • 复制如下脚本,命名为 pre-commit ,放到 .git/hooks 目录下
  • 在 .git/hooks 目录下使用 Git Bash 执行命令: chmod +x pre-commit
  • 请求目标的URL需要自己找个
#!/usr/bin/env node

const https = require('https');

// 请求目标 URL
const url = '';

// 发起 HTTP 请求
https.get(url, (res) => {
  let data = '';

  // 监听数据流
  res.on('data', (chunk) => {
    data += chunk;
  });

  // 响应结束时处理数据
  res.on('end', () => {
    try {
      const jsonData = JSON.parse(data);
      //console.log('返回数据:',jsonData);
      if (jsonData.code === 0) {
        const serverTime = jsonData.data.time;
        const localTime = Math.floor(Date.now() / 1000);
        //console.log('服务器时间:',serverTime," ,本地时间:",localTime);

        // 计算时间差
        const timeDifference = Math.abs(localTime - serverTime);

        // 如果时间差超过5分钟(300秒),则停止
        if (timeDifference > 300) {
          console.error('时间差超过5分钟,操作已停止。');
          process.exit(1);
        } 
      } else {
        console.error('请求时间服务器失败:', jsonData.msg);
      }
    } catch (error) {
      console.error('解析时间服务器响应失败:', error.message);
    }
  });

}).on('error', (err) => {
  console.error('请求错误:', err.message);
});

相关文章:

  • Golang | 每日一练 (6)
  • Mysql 安装指南(小白入门)
  • 基于FPGA轨道交通6U机箱CPCI脉冲板板卡
  • vs2017版本与arcgis10.1的ArcObject SDK for .NET兼容配置终结解决方案
  • 【笔记】计算机网络——数据链路层
  • 10.PE导出表
  • 3.8 Spring Boot监控:Actuator+Prometheus+Grafana可视化
  • 【vue2 + Cesium】使用Cesium、添加第三方地图、去掉商标、Cesium基础配置、地图放大缩小事件、获取可视区域、层级、高度
  • Python第六章01:列表(lsit)定义语法
  • ESP32(3)UDP通信
  • 【Linux篇】:进程抢占式调度的量子纠缠--状态,优先级与上下文切换的三角博弈
  • python基础8 单元测试
  • 【算法】一维差分
  • 【Linux】Makefile秘籍
  • 深度解读 | AI驱动下的新型金融对冲策略:稀疏奖励强化学习的应用
  • 1.angular介绍
  • 第九步:web-js
  • Go基础语法阶段核心内容(5天)
  • ESP32(4)TCP通信
  • 免费实用工具,wps/office/永中通吃!
  • 李在明涉嫌违反《公职选举法》案将于5月1日宣判
  • 解放日报头版聚焦“人民城市”:共建共享展新卷
  • 吕国范任河南省人民政府副省长
  • 国家发改委答澎湃:将指导限购城市针对长期摇号家庭和无车家庭等重点群体定向增发购车指标
  • 2025年“畅游江淮 合肥等侬”文旅推介会在沪成功举办
  • 大学2025丨专访北邮校长徐坤:工科教育要真正回归工程本质