Typora的多端同步方案,如何多台计算机共享md文件?Windows和Mac通过定时执行git来同步markdown文件

news/2025/10/22 21:31:46/文章来源:https://www.cnblogs.com/asiger/p/19159012

Windows和Mac通过定时执行git来同步markdown文件。
在阅读文章前,务必给typora配好图床,图床真的很爽,去网上搜搜教程二十分钟配好。

配置git免密码推拉

首先需要给git配置免登录,使用ssh推拉代码。如果不想看废话,请看标准执行流程

ssh-keygen -t ed25519 -C "your_email@example.com"其中,邮箱地址只是一个标识,默认会在Mac上的/Users/zhangyongle/.ssh/id_ed25519保存(隐藏目录,使用cmd+shift+.显示)

若没有使用默认的路径,需要手动将生成的ssh密钥加载。

ssh-add /path/to/your/custom_key  # 替换为你的密钥实际路径,如 ~/.ssh/my_key

或者指定密钥路径

ssh -i /path/to/your/custom_key

标准执行流程:

ssh生成密钥

ssh-keygen -t rsa

记录密钥,打开生成的.pub文件,拷贝(在生成密钥的时候会有生成文件的地址)

image-20251022091809903

然后就可以通过git访问仓库了。

下面来分别介绍Mac和Windows定时脚本的方案(经过完整执行的)

Windows定时执行脚本

编写一个bat脚本,注意路径中不要有中文。该脚本实现如果有变更,则提交代码,无变更则不提交。请注意修改脚本中的仓库路径和日志目录(注意不要放到一起,否则每次运行脚本都要产生日志,每次有日志变更就又要交代码。。检测变更就没有了意义)

@echo off
chcp 65001 >nul 2>&1:: 配置路径(仓库路径和日志目录)
set "REPO_PATH=F:\repository\typora-synchronization"
set "LOG_DIR=F:\tool\script\log"
set "LOG_FILE=%LOG_DIR%\git_sync.log":: 确保日志目录存在(不存在则创建)
if not exist "%LOG_DIR%" (md "%LOG_DIR%" >nul 2>&1
):: 获取当前时间
set "NOW=%date:~0,10% %time:~0,8%":: 记录执行开始
echo [%NOW%] 脚本开始执行 >> "%LOG_FILE%":: 切换到仓库目录
cd /d "%REPO_PATH%" || (echo [%NOW%] 错误:无法切换到仓库目录 "%REPO_PATH%" >> "%LOG_FILE%"exit /b 1
):: 拉取远程代码
git pull >nul 2>&1
echo [%NOW%] git pull 执行完成 >> "%LOG_FILE%":: 检查工作区是否有变更(未执行add前)
git diff --quiet --exit-code
if %errorlevel% equ 0 (:: 无任何变更,直接结束echo [%NOW%] 工作区无变更,无需提交和推送 >> "%LOG_FILE%"
) else (:: 有变更:添加到暂存区并提交推送git add . >nul 2>&1git commit -m "Windows自动提交 [%NOW%]" >nul 2>&1git push >nul 2>&1echo [%NOW%] 检测到变更,已执行 add/commit/push >> "%LOG_FILE%"
):: 记录执行结束
echo [%NOW%] 脚本执行结束 >> "%LOG_FILE%"
echo. >> "%LOG_FILE%"  :: 空行分隔每次执行

可以双击测试脚本能否成功运行,若不能,可以通过在脚本最后一行加pause来查看报错信息。

打开Windows任务计划程序,点击右边的新建任务

image-20251022105811799

image-20251022105815021

然后添加触发器和操作来自定义操作。触发器选择每半小时执行一次,持续时间为1天。

image-20251022110452784

触发器设置关机时运行(未验证)

image-20251022114318067

可以通过点击任务计划程序的右侧,”运行“来测试能否正常执行。

Mac 定时执行脚本

使用launchd启用定时任务,首先通过 .plist 格式的配置文件定义任务,文件需放在以下目录之一:

  • ~/Library/LaunchAgents/:当前用户的定时任务(推荐,无需管理员权限)
  • /Library/LaunchAgents/:所有用户的定时任务(需管理员权限)
  • /Library/LaunchDaemons/:系统级别的定时任务(需管理员权限,无用户交互)

首先创建一个sh脚本(不知道为什么mac的git在没有变更的情况下不会推代码,而Windows会推,可能是我的版本问题,总之不需要做特殊处理了)

cd 存放
git pull
git add .
git commit -m "sync at $(date +'%Y-%m-%d %H:%M:%S')"
git push

去mac设置里,找到“隐私与安全性”/“完全磁盘访问权限”,添加bin/sh的权限。(关键一步)

image-20251022212509183

创建一个md_sync.plist文件,规则可以去问一下ai或者百度一下,不再赘述。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><!-- 任务唯一标识(建议与文件名一致) --><key>Label</key><string>md_sync</string><!-- 要执行的脚本路径(绝对路径) --><key>ProgramArguments</key><array><string>/Volumes/lyle/misc/script/md_sync.sh</string>  <!-- 脚本绝对路径 --></array><!-- 定时规则(使用 cron 风格或 launchd 特有格式) --><key>StartCalendarInterval</key><dict><key>Minute</key><integer>10</integer></dict>1<!-- 输出日志路径(可选,方便调试) --><key>StandardOutPath</key><string>/Volumes/lyle/misc/script/script_output.log</string><key>StandardErrorPath</key><string>/Volumes/lyle/misc/script/script_error.log</string><!-- 是否在加载时立即执行一次(可选) --><key>RunAtLoad</key><false/>
</dict>
</plist>

执行下面的命令加载

launchctl load md_sync.plist # plist文件存放路径

手动执行,测试是否可以成功提交

launchctl start md_sync 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OOP-实验二

实验任务一 源代码 T.h点击查看代码 #pragma once#include <string>// 类T: 声明 class T { // 对象属性、方法 public:T(int x = 0, int y = 0); // 普通构造函数T(const T &t); // 复制构造函数T(T &am…

P2272 [ZJOI2007] 最大半连通子图

P2272 [ZJOI2007] 最大半连通子图 题解闲聊:最近好像一直在写题,好久没补题解了qwq,今天来一发。 以及,不会缩点的请先移步P3387题目传送门 博客传送门 思路 首先呢,如果原图里存在强连通分量,那么它们首先是半联…

2025年,哪些微信公众号排版工具能带来效率变革?

最初的纯手动排版到如今AI赋能的全流程创作工具,技术的进步让内容生产效率翻倍提升。今天,我将基于海量实测和真实使用场景,为你盘点2025年市面上最值得入手的8款公众号编辑器,并重点测评有一云AI编辑器——这款被…

我对软件工程的理解

软件工程是一门将工程化思想应用于软件开发与维护过程的学科,其核心目标是以系统化、规范化、可度量的方式提高软件的质量、开发效率和可维护性。它不仅仅关注编程本身,更强调整个软件生命周期的管理,包括需求分析、…

软件工程第三次作业--结对项目

结对项目信息 课程信息项目 内容这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/…

AI股票预测分析报告 - 2025年10月22日

AI股票预测分析报告 - 2025年10月22日body { font-family: "Microsoft YaHei", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: rgba(51, 51, 51, 1); max-width: 1…

CF2144D

场上想了挺久才想到做法。 但是其实题不难。 首先发现 \(c_i\) 的数据范围不大,可以考虑枚举 \(x\)。 接着考虑如何每次枚举 \(x\) 完之后,计算当前 \(x\) 的答案。 用一个桶记录一下每个 \(c_i\) 出现的次数。 接着…

折腾笔记[33]-使用uiautomation自动重复读取图片(被控程序为.net框架)

基于python使用uiautomation自动操作.net程序.读取目录中png以及查找与其对应的json数据输入软件和点击按钮.摘要 基于python使用uiautomation自动操作.net程序.读取目录中png以及查找与其对应的json数据输入软件和点击…

软工第三次作业——结对项目

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13470github项目地址 h…

数据分析工具Pandas

View Post数据分析工具Pandas1、Pandas的数据结构分析 (1)Series:是一个类似一维数组的对象,它能够保存任何类型的数据,主要由一组数据和与之相关的索引两部分分构成;为了能方便地操作Series对象中的索引和数据,…

switch的简单运用

switch 分支语法 switch 分支结构用于在多个可能的情况下选择一种情况进行处理。以下是 switch 分支结构的基本语法:switch(变量表达式){case 常量1:语句;break;case 常量2:语句;break;case 常量3:语句;break;...case …

科学计算库Numpy

View Post科学计算库Numpy1、认识Numpy数组对象 Numpy中最重要的一个特点就是其N维数组对象,即ndarray对象,该对象可以执行一些科学计算。点击查看代码 #导入库 import numpy as np2、创建Numpy数组 (1)最简单的创…

实用指南:基于蜣螂优化的LSTM深度学习网络模型(DBO-LSTM)的一维时间序列预测算法matlab仿真

实用指南:基于蜣螂优化的LSTM深度学习网络模型(DBO-LSTM)的一维时间序列预测算法matlab仿真2025-10-22 21:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !import…

10.22总结

1.今天学习了数据库增添数据 2.明天准备学习删除数据 3.今天不太熟悉

AutoGen框架入门:5个核心概念搭建智能体协作系统

AutoGen 是微软研究院开源的多智能体 AI 系统框架。这个框架的设计思路很简单——让多个 AI 智能体(加上人类参与)在对话中完成复杂任务的协作和推理。 你甚至可以把它理解成一个团队聊天室,智能体们在里面讨论、争…

使用google上colab编辑器

1.先下载google,并注册google账号 手机注册失败时,可以在浏览器设置中把浏览器语言改为中文,重新注册即可 2.登录google drive 网址:https://drive.google.com/drive/my-drive 3.在google drive 中加载 Colab Noteb…

英语_阅读_The power of curiosity_待读

The power of curiosity 好奇心的力量 Curiosity is one of the most powerful forces that drive human progress. 好奇心是推动人类进步最强大的力量之一。 It is the desire to learn, explore and understand the …

20251022周三日记

20251022周三日记今日: 1.昨晚很不爽啊,越想越来气,最终想到无欲则刚,好死不如赖活着。 2.早上起床来趟实验室把电脑拿起来去上课,拜托陈和隋帮忙听CSC,感觉确实都是给博士的,可以先从语言入手。低能伦理课配ge…