跳转到内容
返回首页
Tutorial

GitHub 集成:完整指南

了解如何连接你的 GitHub 仓库,并直接在手机上的 PocketCode 中管理代码。

更新于:
3 min
作者 Pelayo Naredo
GitHub 集成:完整指南

在手机上使用 Git 和 GitHub

过去在手机上管理仓库一直很麻烦。PocketCode 内置了 Git(使用 JGit 库,无需安装任何东西),所以日常流程都能在手机上完成:克隆、暂存、提交、推送和拉取请求。本指南按真实的界面来写;Git 与 GitHub 文档对每个界面都有详细说明。

初始设置

1. 连接你的 GitHub 账户

  1. 打开 设置 → 集成 → 已连接的服务,选择 GitHub
  2. 点击 使用验证码登录,再点击 向 GitHub 申请代码
  3. 点击 打开 GitHub,在打开的页面(github.com/login/device)输入 PocketCode 显示的代码并批准(OAuth 设备流)
  4. 保持该面板打开:你批准后它会自动完成连接

无需复制任何令牌。代码约 15 分钟内有效;过期后重新申请即可。免费版包含每个服务的第一个账户;连接更多账户需要 Pro。

2. 克隆仓库

  1. 进入 项目 并点击 克隆
  2. 选择 从 GitHub 克隆(或 GitLab / Bitbucket)。如果还没连接,先点击 连接
  3. 选择你的某个仓库(可以搜索),然后点击 克隆

仓库会作为新项目出现。如果同名项目已存在,克隆结果会加上后缀,例如 repo (2)。你只能从自己的仓库列表中克隆,并且仅支持 HTTPS:不支持 SSH 远程地址,也不支持粘贴 URL 来克隆。本地终端没有 git 程序,所以那里没有 git clone;请使用 克隆 入口。

基本工作流程

修改文件

  1. 像平常一样编辑文件
  2. 在仓库中,文件浏览器会标出已更改的文件,状态栏会显示分支及其 ↑↓ 计数
  3. 打开 源代码管理(编辑器菜单 → Git,或在实体键盘上按 Ctrl+Shift+G,或点击状态栏中的分支名),点击文件即可查看差异:新增和删除的行显示在同一个列表中

提交并推送

在编辑器中:

  • 打开 源代码管理
  • 查看更改,暂存 你想要的文件(暂存全部 暂存所有文件,按块暂存 只暂存文件的一部分)
  • 编写提交信息并点击 提交
  • 点击顶部的 推送 图标

编辑器在提交、推送或拉取之后不会显示成功或错误消息:请通过列表和 ↑↓ 计数来判断结果。如果推送好像没有反应,请在 项目 中重试,那里会显示错误。

你也可以在 项目 的项目卡片上点击 Commit,勾选文件、写好信息,然后点击 Commit & Push(项目有远端时)。请先在 Git 中设置 提交中显示的名字。

AI 消息 按钮会以四种风格建议提交信息,但它并不是 AI:它是根据你更改的文件名在本地按规则生成的建议,不使用模型,也不需要密钥。

高级功能

1. 分支管理

  • 创建与切换: 在项目卡片上点击 Git,再点击 分支。点击某个分支即可切换,或点击 创建新分支。这些行在项目有远端(origin)后才会出现;终端的 Git 面板 也可以在本地切换和创建分支
  • 合并: 在 源代码管理 中点击 合并,选择一个本地分支,再点击 合并到 main(或你当前所在的分支)
  • 对比: 对比 显示两个本地分支相差多少:领先和落后的提交,以及更改的文件

这些列表只显示本地分支。

2. 拉取请求

从编辑器的 Git 菜单打开 GitHub PR 与 Issue。它适用于 origin 在 github.com 的项目,并使用你连接的账户。

  1. 在某个分支上进行修改
  2. 推送该分支(项目 Git 面板中的 上传改动)
  3. 在 拉取请求 标签页点击 从 … 新建拉取请求
  4. 填写标题和描述,选择基础分支和源分支(需要的话可创建为草稿)
  5. 点击 创建拉取请求

同一个面板还有 议题、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:快速修复

  1. 在项目卡片上打开 Git → 分支,切换到 main
  2. 点击 下载改动 获取最新内容
  3. 在编辑器中进行修复
  4. 点击 Commit,写好信息,再点击 Commit & Push

工作流 2:新功能

  1. 切换到 main,点击 下载改动,然后点击 创建新分支(例如 feature/new-api),并打开切换开关
  2. 开发,并在 源代码管理 中频繁提交
  3. 点击 上传改动,然后在 GitHub 面板中点击 从 … 新建拉取请求

工作流 3:紧急修复

  1. 切换到生产分支,并创建 hotfix/critical-bug
  2. 修复并提交
  3. 切换回生产分支,打开 源代码管理 → 合并,选择 hotfix 分支,再点击 合并到 …
  4. 点击 上传改动

最佳实践

提交

✅ 好的提交信息:

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/重构名称

推送之前

  1. ✅ 检查你的更改
  2. ✅ 运行测试(如果有)
  3. ✅ 先下载远端改动(避免冲突)
  4. ✅ 编写有描述性的信息

高级配置

你的令牌及其去向

  • 通过 使用验证码登录 得到的令牌会加密保存在你的手机上(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 项

协作

在手机上进行代码审查

  1. 打开 PR
  2. 查看已有的评审、检查和批准状态
  3. 在 PR 对话中添加评论

提交正式的批准/请求更改评审,以及针对某一行的评论,目前尚未接入应用—— 请在 GitHub 网页端完成。PocketCode 目前展示的是 PR 的评审状态和对话。

讨论

  • 在 PR 或议题的对话中写评论
  • 使用 @用户名 提及协作者

故障排除

“无法推送”

如果应用提示“远端拒绝了本次上传。请先下载远端改动,然后重新上传。”:

  1. 点击 下载改动
  2. 如果有冲突就先解决(见上文)
  3. 再次点击 上传改动

“我克隆了仓库但看不到文件”

请检查:

  1. 克隆结果是 项目 页面中的一个新项目:请从那里打开
  2. 仓库是不是空的?
  3. 由 Git LFS 管理的文件只会以小的文本指针形式到达,而不是真实内容

“更改没有出现在 GitHub 上”

单独的提交不会上传任何东西,而 发布 只是创建并关联空仓库。如果状态栏显示领先的提交(↑),或项目卡片上写着 Push,请点击 上传改动(或 源代码管理 中的 推送 图标)。

结语

有了 PocketCode,你在手机上就拥有了日常的 Git 和 GitHub 工作流程。再也没有借口不去完成那个紧急的提交了。

下一篇教程:使用 Vercel 从 GitHub 自动部署

有疑问?请写信至 [email protected]

祝编码愉快!🚀

本文背后的工具

代码编辑器

准备好试用 PocketCode 了吗?

下载应用,开始用手机编程。