前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows通过任务计划+PowerShell实现Git自动推送

Windows通过任务计划+PowerShell实现Git自动推送

作者头像
鳄鱼儿
发布2024-07-18 08:15:09
1040
发布2024-07-18 08:15:09
举报
文章被收录于专栏:鳄鱼儿的技术分享

前言

小鱼多太设备需要同步代码,并且不在同一网络下,突发奇想,是不是可以通过git 实现代码同步。

那么问题来了,如何保证每天都执行 git addgit commitgit push 命令?

作为开发者,能偷懒的事,绝对不亲自做。于是,这个脚本就诞生了。

PowerShell 介绍

PowerShell 是由微软开发的一个命令行环境和脚本语言,也是一种跨平台的任务自动化解决方案,用于系统管理和配置管理,由命令行 shell、脚本语言和配置管理框架组成。

PowerShell 可以在 Windows、Linux 和 macOS 上运行。它首次发布于 2006 年,是微软 Windows 操作系统的一部分,并可以用于自动化系统管理任务。

PowerShell 是在.NET公共语言运行时 (CLR) 上构建的,作为一种面向对象的脚本语言, 通常用于自动执行系统管理。 它还用于经常在 CI/CD 环境中生成、测试和部署解决方案。其所有输入和输出都是 .NET 对象。无需分析文本输出即可从输出中提取信息。

PowerShell 脚本语言包含以下功能:

  • 可通过函数、类、脚本和模块进行扩展
  • 便于输出的可扩展格式系统
  • 用于创建动态类型的可扩展类型系统
  • 对常用数据格式(例如 CSV、JSON 和 XML)的内置支持

PowerShell 常用于自动化任务,如系统配置、软件部署、环境设置等。它的强大功能和灵活性使其成为系统管理员和开发人员的重要工具。

PowerShell 下载

最新版下载地址: Release v7.4.3

实现过程

PowerShell 代码

先给出代码,对powershell 熟悉的阅读到此就可以了。

代码需要放置在项目的根路径下,会自动获取到脚本所在的路径,并对该路径下的代码进行 git addgit commitgit push,提交完后会保留执行日志。方便后续查看。

或者,你可以参考代码进行修改,包括项目路径、commit 信息等等。

代码语言:javascript
复制
# 文件名:autoGitPush.ps1
Function gitPush {
    # 将脚本放置在项目根路径
    if ($PSVersionTable.PSVersion.Major -ge 3) {
        # PowerShell 3.0 或更高版本
        $ScriptPath = $PSCommandPath
    } else {
        # PowerShell 2.0 或更低版本
        $MyInvocation = (Get-Variable MyInvocation).Value
        $ScriptPath = $MyInvocation.MyCommand.Definition
        $ScriptDir = Split-Path -Parent $ScriptPath
    }

    $ScriptDir = Split-Path -Path $ScriptPath -Parent
    Write-Output $ScriptDir

    Set-Location $ScriptDir # 切换到项目路径
    $now = Get-Date # 获取时间日期对象
    $msg = "==> " + $now.ToString('yyyy-MM-dd HH:mm:ss') + " commit <=="# 提交的消息
    # 将提交信息输出到日志文件gitpush.log
    $msg | Out-File -FilePath .\gitpush.log -Append -Encoding utf8
    Write-Output $msg
    # 将代码的相关信息输出到日志文件gitpush.log
    git status >> .\gitpush.log 
    git add . >> .\gitpush.log
    git commit -m $msg  >> .\gitpush.log
    git push origin main  >> .\gitpush.log
}

gitPush # 运行函数

调试powershell

VScode 插件——PowerShell

小鱼使用VScode 和PowerShell插件来完成脚本的调试的。插件如下图所示:

Pasted image 20240717140745.png
Pasted image 20240717140745.png

运行脚本

本文创建的脚本文件名为 autoGitPush.ps1,在VScode 终端下通过以下指令就可以执行本脚本。

代码语言:javascript
复制
.\autoGitPush.ps1

自动化配置

Win + R 打开运行窗口,输入taskschd.msc然后回车。

Pasted image 20240717132522.png
Pasted image 20240717132522.png

打开任务计划窗口,选择创建任务,并参考下图进行配置。

Pasted image 20240717132649.png
Pasted image 20240717132649.png

接下来配置触发器,小鱼这里设置了两条,电脑空闲状态下,以及每天定时执行。

Pasted image 20240717132756.png
Pasted image 20240717132756.png

最后配置一下操作,点击新建,找到power 执行程序,一般是在 "C:\Program Files\PowerShell\7\pwsh.exe"

别忘了再添加参数,-File [ps1 path]\autoGitPush.ps1autoGitPush.ps1 脚本文件所在的路径。

Pasted image 20240717133041.png
Pasted image 20240717133041.png
Pasted image 20240717133031.png
Pasted image 20240717133031.png

到这里就已经配置完了。

最后别忘了测试下是否配置成功了。

参考文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • PowerShell 介绍
      • PowerShell 下载
      • 实现过程
        • PowerShell 代码
          • 调试powershell
            • VScode 插件——PowerShell
            • 运行脚本
          • 自动化配置
          • 参考文章
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档