GitHub 集成:完整指南
了解如何连接你的 GitHub 仓库,并直接在手机上的 PocketCode 中管理代码。
在手机上使用 Git 和 GitHub
过去在手机上管理仓库一直很麻烦。PocketCode 内置了 Git(使用 JGit 库,无需安装任何东西),所以日常流程都能在手机上完成:克隆、暂存、提交、推送和拉取请求。本指南按真实的界面来写;Git 与 GitHub 文档对每个界面都有详细说明。
初始设置
1. 连接你的 GitHub 账户
- 打开 设置 → 集成 → 已连接的服务,选择 GitHub
- 点击 使用验证码登录,再点击 向 GitHub 申请代码
- 点击 打开 GitHub,在打开的页面(
github.com/login/device)输入 PocketCode 显示的代码并批准(OAuth 设备流) - 保持该面板打开:你批准后它会自动完成连接
无需复制任何令牌。代码约 15 分钟内有效;过期后重新申请即可。免费版包含每个服务的第一个账户;连接更多账户需要 Pro。
2. 克隆仓库
- 进入 项目 并点击 克隆
- 选择 从 GitHub 克隆(或 GitLab / Bitbucket)。如果还没连接,先点击 连接
- 选择你的某个仓库(可以搜索),然后点击 克隆
仓库会作为新项目出现。如果同名项目已存在,克隆结果会加上后缀,例如 repo (2)。你只能从自己的仓库列表中克隆,并且仅支持 HTTPS:不支持 SSH 远程地址,也不支持粘贴 URL 来克隆。本地终端没有 git 程序,所以那里没有 git clone;请使用 克隆 入口。
基本工作流程
修改文件
- 像平常一样编辑文件
- 在仓库中,文件浏览器会标出已更改的文件,状态栏会显示分支及其 ↑↓ 计数
- 打开 源代码管理(编辑器菜单 → Git,或在实体键盘上按
Ctrl+Shift+G,或点击状态栏中的分支名),点击文件即可查看差异:新增和删除的行显示在同一个列表中
提交并推送
在编辑器中:
- 打开 源代码管理
- 查看更改,暂存 你想要的文件(暂存全部 暂存所有文件,按块暂存 只暂存文件的一部分)
- 编写提交信息并点击 提交
- 点击顶部的 推送 图标
编辑器在提交、推送或拉取之后不会显示成功或错误消息:请通过列表和 ↑↓ 计数来判断结果。如果推送好像没有反应,请在 项目 中重试,那里会显示错误。
你也可以在 项目 的项目卡片上点击 Commit,勾选文件、写好信息,然后点击 Commit & Push(项目有远端时)。请先在 Git 中设置 提交中显示的名字。
AI 消息 按钮会以四种风格建议提交信息,但它并不是 AI:它是根据你更改的文件名在本地按规则生成的建议,不使用模型,也不需要密钥。
高级功能
1. 分支管理
- 创建与切换: 在项目卡片上点击 Git,再点击 分支。点击某个分支即可切换,或点击 创建新分支。这些行在项目有远端(
origin)后才会出现;终端的 Git 面板 也可以在本地切换和创建分支 - 合并: 在 源代码管理 中点击 合并,选择一个本地分支,再点击 合并到 main(或你当前所在的分支)
- 对比: 对比 显示两个本地分支相差多少:领先和落后的提交,以及更改的文件
这些列表只显示本地分支。
2. 拉取请求
从编辑器的 Git 菜单打开 GitHub PR 与 Issue。它适用于 origin 在 github.com 的项目,并使用你连接的账户。
- 在某个分支上进行修改
- 推送该分支(项目 Git 面板中的 上传改动)
- 在 拉取请求 标签页点击 从 … 新建拉取请求
- 填写标题和描述,选择基础分支和源分支(需要的话可创建为草稿)
- 点击 创建拉取请求
同一个面板还有 议题、CI 和 通知 标签页。在拉取请求上你可以 合并(合并提交、压缩并合并或变基并合并)、关闭 PR 并写评论。
3. 解决冲突
PocketCode 只有一个带引导的冲突解决界面,而且位于交互式变基之中:对每个冲突块选择 Ours、Theirs 或 Both。对于发生冲突的合并或拉取,没有解决界面:冲突标记(<<<<<<<、=======、>>>>>>>)会留在你的文件里,编辑器也不会列出有冲突的文件。请打开受影响的文件,保留你要的版本,删除标记,然后暂存并提交。
4. 储藏更改
在 源代码管理 中临时保存更改:点击 储藏,再点击 储藏更改。点击某个条目可以 应用、弹出 或 丢弃。请注意:新文件(未跟踪)不会被储藏,储藏说明不会被保存,并且 弹出 总是取最新的一条。
5. 变基与拣选
交互式变基(Pick、Reword、Squash、Fixup、Drop,并带可恢复的备份)和 拣选(按提交哈希)从 GitHub 面板的 ⋮ 菜单打开,而且只在项目的 origin 位于 github.com 时可用。在 项目 → Git → 历史 中,点击某个提交会出现 Revert、Reset Soft、Reset Hard 和 Cherry-pick。Reset Hard 会直接执行、不会询问,并丢弃未提交的工作。
常见工作流
工作流 1:快速修复
- 在项目卡片上打开 Git → 分支,切换到
main - 点击 下载改动 获取最新内容
- 在编辑器中进行修复
- 点击 Commit,写好信息,再点击 Commit & Push
工作流 2:新功能
- 切换到
main,点击 下载改动,然后点击 创建新分支(例如feature/new-api),并打开切换开关 - 开发,并在 源代码管理 中频繁提交
- 点击 上传改动,然后在 GitHub 面板中点击 从 … 新建拉取请求
工作流 3:紧急修复
- 切换到生产分支,并创建
hotfix/critical-bug - 修复并提交
- 切换回生产分支,打开 源代码管理 → 合并,选择 hotfix 分支,再点击 合并到 …
- 点击 上传改动
最佳实践
提交
✅ 好的提交信息:
feat: add Google login
fix: correct email validation
docs: update README with instructions
refactor: simplify search function
❌ 不好的提交信息:
changes
fix
wip
asdfgh
分支
使用有描述性的名称:
feature/功能名称fix/bug描述hotfix/紧急问题refactor/重构名称
推送之前
- ✅ 检查你的更改
- ✅ 运行测试(如果有)
- ✅ 先下载远端改动(避免冲突)
- ✅ 编写有描述性的信息
高级配置
你的令牌及其去向
- 通过 使用验证码登录 得到的令牌会加密保存在你的手机上(AES-256-GCM,密钥来自 Android Keystore),并按每个 PocketCode 账户和每个服务账户分别存放
- Git 只会把它发送到 github.com、gitlab.com 和 bitbucket.org(主机名必须完全匹配)。GitHub 面板则直接从你的手机把它发送到
api.github.com。其他任何主机上的远程仓库(GitHub Enterprise、自建 GitLab、Gitea……)都收不到凭据,所以那里的私有仓库会失败 - 如果你用 GitHub 登录 PocketCode 本身,那么这个 GitHub 令牌也会加密(AES-256-GCM)保存在 PocketCode 的后端:后端用它列出你的仓库,应用也可以从那里恢复它
.gitignore
开始跟踪此项目(项目卡片 → Git)会创建一个本地仓库,并附带一个排除 PocketCode 自己的 .pocketcode/ 文件夹的 .gitignore。编辑该文件即可加入你自己的规则:
# 依赖
node_modules/
venv/
__pycache__/
# 构建产物
dist/
build/
*.pyc
# 环境变量
.env
.env.local
# IDE
.vscode/
.idea/
# 系统文件
.DS_Store
Thumbs.db
不支持的功能
- SSH 远程地址(
git@…、ssh://):请使用 HTTPS 地址 - Git LFS(文件只会保留为小的文本指针)、子模块和提交签名
- Git 钩子:永远不会运行
- GitLab、Bitbucket 或 GitHub Enterprise 的拉取请求、议题、CI 和通知:这些需要 github.com 上的仓库
- GitHub 面板中的列表最多显示 300 项
协作
在手机上进行代码审查
- 打开 PR
- 查看已有的评审、检查和批准状态
- 在 PR 对话中添加评论
提交正式的批准/请求更改评审,以及针对某一行的评论,目前尚未接入应用—— 请在 GitHub 网页端完成。PocketCode 目前展示的是 PR 的评审状态和对话。
讨论
- 在 PR 或议题的对话中写评论
- 使用 @用户名 提及协作者
故障排除
“无法推送”
如果应用提示“远端拒绝了本次上传。请先下载远端改动,然后重新上传。”:
- 点击 下载改动
- 如果有冲突就先解决(见上文)
- 再次点击 上传改动
“我克隆了仓库但看不到文件”
请检查:
- 克隆结果是 项目 页面中的一个新项目:请从那里打开
- 仓库是不是空的?
- 由 Git LFS 管理的文件只会以小的文本指针形式到达,而不是真实内容
“更改没有出现在 GitHub 上”
单独的提交不会上传任何东西,而 发布 只是创建并关联空仓库。如果状态栏显示领先的提交(↑),或项目卡片上写着 Push,请点击 上传改动(或 源代码管理 中的 推送 图标)。
结语
有了 PocketCode,你在手机上就拥有了日常的 Git 和 GitHub 工作流程。再也没有借口不去完成那个紧急的提交了。
下一篇教程:使用 Vercel 从 GitHub 自动部署
有疑问?请写信至 [email protected]
祝编码愉快!🚀
代码编辑器