指南

什么是 GitHub?非开发者的版本控制入门

GitHub 是一个存放软件项目代码及其完整历史的网站,让你可以查看每一次修改、撤销错误,并与其他人共同开发同一个项目。它建立在 Git 之上,Git 是一款免费软件,用于随时间记录项目文件的快照。Git 是保存历史的工具;GitHub 则是这些历史在线共享、备份和讨论的地方。

如果你用 AI 构建应用,GitHub 主要用于两件事:拥有一份代码副本,让它独立于你构建时所用的工具之外;以及把代码交给开发者,使用他们本来就习惯的格式。

用 AI 构建时为什么它很重要

AI 应用构建器会快速编写和修改大量代码,而并非每次修改都是改进。版本控制就是让你安心使用它的方式。

  • 放心撤销。 每次保存的修改都是一个快照。如果 AI 弄坏了什么,你可以回到上一个正常的版本。
  • 所有权。 保存在你自己 GitHub 账户中的代码,无论你更换工具、停止付费还是想听听第二意见,都仍然属于你。
  • 与开发者协作。 几乎每位开发者每天都在使用 Git。一个仓库让他们可以审查 AI 写的内容、修复问题,并把改动送回来。
  • 部署到其他地方。 许多托管平台可以直接从 GitHub 仓库部署。

一个日常类比:修订模式加共享云盘

可以把它想象成开启了修订模式、并存放在共享云盘里的文档。

  • Git 就像修订模式:每次编辑都会被记录,包括是谁、何时、为什么修改,并且你可以回滚到任意版本。
  • GitHub 就像共享云盘:文档在线保存,其他人可以获取副本,还有评论和审批的地方。
  • 分支(branch) 就像另存一份名为“草稿 — 新定价部分”的副本,让你可以放心试验而不影响大家依赖的版本。如果试验成功,再把它合并回去。

它与普通文档的区别在于规模。一个应用包含数百个文件,而 Git 会一起跟踪所有文件,因此每个快照都是整个项目在某一时刻的状态。

你会遇到的 Git 与 GitHub 术语

术语通俗含义
仓库(repository,repo)带有完整历史的项目文件夹
提交(commit)一次保存的修改快照,附带一条简短的说明信息
分支(branch)一条独立的工作线,让实验不会干扰主版本
main主分支的常用名称,即正式上线的版本
合并(merge)把一个分支的修改并入另一个分支
合并冲突(merge conflict)两处修改动了同一行,需要有人选择保留哪一个
克隆(clone)下载仓库的完整副本,包括历史记录
推送 / 拉取(push / pull)把你的提交上传到 GitHub / 把他人的提交下载到本地
拉取请求(Pull request,PR)在 GitHub 上提议合并某个分支的页面,供人们审查和讨论修改
派生(fork)你在 GitHub 上对他人仓库拥有的一份自己的副本
议题(issue)附属于仓库的待办事项或缺陷报告
.gitignore列出 Git 永远不应记录的文件,例如 .env 密钥文件和下载的依赖
GitHub Actions在 GitHub 上运行的自动化,例如在每个拉取请求上运行测试

有两点值得特别强调。第一,Git 历史按设计是永久保存的:如果密码被提交并推送,之后再在新提交中删除它,并不能把它从历史中移除。第二,提交说明的价值取决于它写得好不好。“修复两人同时预订时的重复计数”对以后很有帮助;“更新”则没有。

实例:把 AI 构建的应用交给自由开发者

你用 AI 应用构建器做了一个客户门户。它能正常运行,但你希望一位自由开发者帮你添加一个与会计软件对接的复杂集成。

  1. 把项目连接到一个新的私有 GitHub 仓库并推送。仓库现在保存了代码及其历史。
  2. 检查其中的内容。 在 GitHub 上打开仓库,里面不应有 .env 文件,代码中也不应有 API 密钥。密钥应保存在平台的设置中,如需与自由开发者共享,应单独传递,参见环境变量与密钥。
  3. 邀请自由开发者作为该仓库的协作者,仅限此仓库。
  4. 他们在一个分支上工作,例如命名为 accounting-sync 的分支,边做边提交,完成后发起一个拉取请求。
  5. 你审查这个拉取请求。 即使不读代码,你也可以阅读描述、查看哪些文件被修改,并在评论中提问。
  6. 满意后合并,然后把修改拉取回你的构建器,让你和 AI 从新版本继续工作。

整个过程中,你都可以准确看到改了什么,并在需要时撤销。这就是版本控制在一个工作流程中的全部价值。如果你还在考虑是否要请开发者加入,参见请开发者还是用 AI 构建。

常见错误与误解

  • “GitHub 和 Git 是同一回事。” Git 不依赖 GitHub 也能使用;GitLab 和 Bitbucket 等替代方案同样托管 Git 仓库。
  • “GitHub 会运行我的应用。” GitHub 只存储代码。要让公众访问应用,需要网站托管这一独立服务(尽管有些主机可以从 GitHub 部署)。
  • 提交密钥。 这是最具破坏性、也最常见的错误。用 .gitignore 排除 .env 文件,并且轮换任何曾被推送上去的密钥。
  • 只有一个分支且没有说明。 个人实验时还可以,但请为提交写清楚的说明,并对任何有风险的改动使用分支。
  • 同时在两处编辑。 如果你在 GitHub 和 AI 构建器中都修改代码,而切换前没有拉取同步,就会产生冲突。一次只在一个地方编辑,切换前先同步。
  • 以为私有仓库就是所有内容的备份。 它保存的是代码,而不是数据库内容或上传的文件。这些需要单独备份。

向 AI 构建器提出的请求

  • “添加一个 .gitignore,排除 .env、依赖文件夹和构建输出。”
  • “编写一份 README,说明如何安装、需要哪些环境变量(仅列出名称),以及如何运行应用。”
  • “添加一个 .env.example,列出所有变量名称,但不包含真实的值。”
  • “为每次修改使用清晰、具体的提交说明。”

这四项请求能让开发者几分钟内就接手这个仓库。若要把应用迁移到你自己的服务器,参见如何导出并自行托管 AI 构建的应用;若要在面向真实用户之前加固应用,参见如何把 AI 原型推进到生产环境。

GitHub 与 Mythex

Mythex 在每个套餐中都会为你保留历史:每次智能体成功完成一轮后,它都会保存一个检查点,即可以回退的 Git 快照。在 Pro 套餐中,你可以连接 GitHub,并针对自己的仓库推送或拉取项目,也可以把整个项目下载为压缩包;密钥和已安装的依赖会从导出内容中排除。这里的 GitHub 用于同步代码,而不是用于登录 Mythex。参见文档中的 GitHub、导出与导入,以及各套餐包含内容的定价页面。

常见问题

Git 和 GitHub 有什么区别?

Git 是一款免费软件,可以在任何电脑上记录项目文件的历史变更。GitHub 是一个由微软拥有的网站,它在线托管 Git 仓库,并提供拉取请求(pull request)、议题(issue)和自动化等协作工具。

用 AI 构建应用一定要用 GitHub 吗?

不一定。许多 AI 应用构建器会在产品内部为你保存历史记录。当你想要一份属于自己的代码副本、需要与开发者合作,或计划把应用托管到其他地方时,GitHub 才会变得有用。

GitHub 免费吗?

GitHub 提供免费套餐,包含公开和私有仓库,对大多数个人和小团队来说已经足够。付费套餐会增加团队管理和更多功能;具体内容请查看 GitHub 的定价页面。

我在 GitHub 上的代码会公开吗?

只有当你把仓库设为公开时才会。私有仓库只有你和你邀请的人可以看到。即使是私有仓库,也绝不要提交密码或 API 密钥。

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 繁體中文(香港) 繁體中文(台灣)