git-auto-push for windows

如果你使用的是 macos,可以参考这篇文章

安装git

首先需要在电脑上安装好 git,下载地址

然后在安装目录里找到 git.exe 文件。如图:

右键查看其属性,找到其路径备用。如图:

bat脚本

在任意位置新建一个文件 AutoPush.bat,名字也是任意的,写入以下内容:

@echo off

@REM 进入到项目目录
cd "C:\xxx\xxx"

@REM git 目录
set GIT_PATH="D:\App\Git\cmd\git.exe"

@REM 设置分支
set BRANCH = "origin"

@REM 循环标记
:loop 

@REM add 命令
%GIT_PATH% add -A

@REM commit 命令
%GIT_PATH% commit -m "auto commit"

@REM pull 命令,如果不需要每次 push 之前都 pull ,可以把这个删除
%GIT_PATH% pull %BRANCH%

@REM push 命令
%GIT_PATH% push %BRANCH%

@REM 等待 180 秒
timeout 180 > NUL

@REM 回到 loop 标记处
goto loop

至此,这个文件已经可以使用了,双击即可使用。如果想在后台自动运行,可以继续往下看。

后台自动运行脚本

后台执行脚本

上面的 bat 脚本在运行的时候,会弹出 cmd 窗口,为了让其静默执行,我们需要另一个脚本来调用它,任意位置新建 AutoPushDaemon.VBS,写入以下内容:

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\AutoPushNote.bat" & Chr(34), 0
Set WshShell = Nothing

注意上面的 C:\AutoPushNote.bat,替换为你自己的路径。

部署计划任务

搜索 task ,找到任务计划程序。如图:

新建任务,如图:

名称和描述随意填写,如图:

触发器,这里为了每次开机都能运行,选择"计算机启动时",如图:

选择启动程序,如图:

填写需要运行的脚本的完整路径,即上面新建的 AutoPushDaemon.VBS。如图:

最后保存。

首次运行需要手动操作,如图:

很棒的教程,谢谢

太强了!(凑字数)

这个可以让桌面版和网页版同步嘛?

理论上是可以的,因为他们读取的都是同一个 git 仓库里的内容。但是我实际操作下来,目前的版本会不兼容,例如在网页版 push 的内容,如果里面有 attribute ,在桌面端 pull 下来打开的时候,attribute 会被展开为普通文本,从而导致双链失效。

谢谢回答 :heart: :heart: :heart:

辅助教程: 用git提交代码到github的完整步骤

另外我运行 pys1992 的bat代码会出错,所以做了一些修改和简化,注意我是把bat文件放在了同步文件夹内。

@echo off

@REM git 目录
set GIT_PATH="C:\Program Files\Git\cmd\git.exe"

@REM 循环标记
:loop 

@REM add 命令
%GIT_PATH% add .

@REM commit 命令
%GIT_PATH% commit -m "auto commit"

@REM pull 命令,如果不需要每次 push 之前都 pull ,可以把这个删除
%GIT_PATH% pull origin master

@REM push 命令
%GIT_PATH% push origin master

@REM 等待 180 秒
timeout 180 > NUL

@REM 回到 loop 标记处
goto loop   

除此之外还遇到了一个问题就是 push 很久没反应,最后返回如下信息,说明本地无法连接github服务器,请检查一下网络连接。

Connection reset by 13.250.177.223 port 22
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

还有一个问题需要注意的是,自动同步的时间间隔是3分钟,要确保切换设备编辑的时差至少要超过这个时间和文件上传的时间,如果在此时间内跨设备同步就会出错。

2 个赞

好久没看论坛,感谢你的补充。 :eyes: