前三篇我们介绍了 Working Copy 的简单命令、分支管理和提交同步操作。本篇作为 X-Callback-URL 命令系列的收官之作,带你探索文件操作与高级功能,包括文件读写、移动、压缩、SSH 命令等强大能力。
除了基本的 Git 操作,你可能还需要:
- 从 Working Copy 读取配置文件内容
- 向仓库写入新的文档或代码文件
- 整理文件结构,移动或重命名文件
- 将多个文件打包成 Zip 压缩包
- 在远程服务器上执行命令
- 通过 WebDAV 共享仓库文件
- 链式执行多个 Git 命令
Protocol Launcher 让这些高级操作变得简单。
核心能力:文件操作与高级命令
Protocol Launcher 为 Working Copy 提供了丰富的文件操作与高级命令:
- 列出仓库 (
repos):获取所有仓库列表 - 移动文件 (
move):移动或重命名文件 - 读取文件 (
read):读取文件内容并回调 - 写入文件 (
write):创建或更新文件 - 创建压缩包 (
zip):将文件归档为 Zip - SSH 命令 (
sshCommand):在远程服务器执行命令 - WebDAV 服务 (
webdav):启动或停止 WebDAV 服务器 - 链式命令 (
chain):串联多个命令顺序执行
快速上手
确保已安装 Protocol Launcher:
bash
npm install protocol-launcher
导入文件操作与高级命令:
typescript
// ✅ 推荐:按需加载
import {
repos,
move,
read,
write,
zip,
sshCommand,
webdav,
chain,
} from 'protocol-launcher/working-copy'
场景一:列出所有仓库 (repos)
获取 Working Copy 中的所有仓库列表:
typescript
import { repos } from 'protocol-launcher/working-copy'
const url = repos({
key: 'repos-001',
})
适合在需要选择操作目标仓库时展示仓库列表。
场景二:移动或重命名文件 (move)
在仓库内移动文件或重命名:
typescript
import { move } from 'protocol-launcher/working-copy'
const url = move({
key: 'move-001',
repo: 'my repo',
source: 'old-path/file.txt',
destination: 'new-path/file.txt',
})
提示: 此命令支持跨目录移动和文件重命名两种场景。
场景三:读取文件内容 (read)
从 Working Copy 读取文本文件内容,支持回调 URL:
typescript
import { read } from 'protocol-launcher/working-copy'
const url = read({
key: 'read-001',
xSuccess: 'app://x-callback-url/read?text=',
repo: 'my repo',
path: 'README.md',
})
注意:
xSuccess参数指定读取完成后的回调 URL,文件内容会附加在 URL 后面。
场景四:写入文件 (write)
创建新文件或更新现有文件:
typescript
import { write } from 'protocol-launcher/working-copy'
const url = write({
key: 'write-001',
repo: 'my repo',
path: 'README.md',
text: 'hello there',
})
适合在移动端快速创建文档或更新配置文件。
场景五:创建 Zip 压缩包 (zip)
将多个文件归档为 base64 编码的 Zip 文件:
typescript
import { zip } from 'protocol-launcher/working-copy'
const url = zip({
key: 'zip-001',
xSuccess: 'my-app://x-callback-url/read?path=/',
repo: 'my repo',
})
提示: 适合将项目文件或文档打包导出,通过回调 URL 接收 base64 编码的 Zip 数据。
场景六:执行 SSH 命令 (sshCommand)
在远程服务器上运行安全 shell 命令:
typescript
import { sshCommand } from 'protocol-launcher/working-copy'
const url = sshCommand({
key: 'ssh-001',
server: 'remote.server.net',
cmd: 'run tests',
})
注意: 需要提前在 Working Copy 中配置 SSH 服务器信息。
场景七:切换 WebDAV 服务 (webdav)
启动或停止 Working Copy 内部的 WebDAV 服务器:
typescript
import { webdav } from 'protocol-launcher/working-copy'
const url = webdav({
key: 'webdav-001',
cmd: 'start', // 或 'stop'
})
启动后,其他设备可以通过 WebDAV 协议访问 Working Copy 中的仓库文件。
场景八:链式命令 (chain)
将多个 x-callback-url 命令链接在一起顺序执行:
typescript
import { chain } from 'protocol-launcher/working-copy'
const url = chain({
key: 'chain-001',
repo: 'my repo',
commands: [
{ command: 'commit', params: { message: 'fix: 修复问题' } },
{ command: 'push' },
],
})
提示: 这是最强大的功能,可以自动化完整的 Git 工作流。
实战演示:自动化发布流程
假设你需要在移动端完成一个完整的发布流程,可以使用链式命令:
typescript
import { chain, webdav } from 'protocol-launcher/working-copy'
// 1. 链式执行:提交 + 推送 + 启动 WebDAV
const releaseWorkflow = chain({
key: 'release-001',
repo: 'my-project',
commands: [
{ command: 'commit', params: { message: 'release: v1.0.0' } },
{ command: 'push' },
],
})
// 2. 启动 WebDAV 供团队下载
const startWebdav = webdav({
key: 'webdav-release',
cmd: 'start',
})
参数详解
read 命令参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
key |
string | ✅ | 请求唯一标识 |
xSuccess |
string | ✅ | 回调 URL,文件内容会附加在后面 |
repo |
string | ✅ | 仓库名称 |
path |
string | ✅ | 文件路径 |
write 命令参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
key |
string | ✅ | 请求唯一标识 |
repo |
string | ✅ | 仓库名称 |
path |
string | ✅ | 文件路径 |
text |
string | ✅ | 文件内容 |
chain 命令参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
key |
string | ✅ | 请求唯一标识 |
repo |
string | ✅ | 仓库名称 |
commands |
array | ✅ | 命令数组,每个元素包含 command 和 params |
为什么选择 Protocol Launcher?
-
强大的文件操作能力:支持读取、写入、移动等多种文件操作,满足移动端编辑需求。
-
回调机制支持 :
read和zip等命令支持回调 URL,可以获取操作结果。 -
远程服务器集成:通过 SSH 命令和 WebDAV 服务,实现与远程系统的交互。
-
链式自动化 :
chain命令允许将多个操作串联,实现复杂工作流自动化。 -
类型安全保障:TypeScript 类型定义确保参数正确,减少运行时错误。
结语
至此,我们完成了 Working Copy 所有命令的介绍。从简单命令到 X-Callback-URL 命令,从分支管理到文件操作,Protocol Launcher 为你提供了完整的移动端 Git 工作流解决方案。
无论是个人开发还是团队协作,无论是紧急修复还是日常迭代,Protocol Launcher + Working Copy 的组合都能让你在移动设备上保持高效。
🔗 相关链接
- Protocol Launcher 官网:https://protocol-launcher.huayi-data.com/
- Working Copy 模块文档:Working Copy | Protocol Launcher
系列文章回顾
- Working Copy 简单命令 - 基础操作入门
- Working Copy 分支管理 - 分支操作全攻略
- Working Copy 提交与同步 - Git 核心操作
- Working Copy 文件操作与高级命令 - 高级功能详解