上一篇文章中,我们让 AI 做的 Todo 工具已经写好了,就像下图一样。它完成了任务,我们可以预览效果,如果没有问题,就可以继续迭代了。

Codex 完成了开发任务

但是,假如我们改坏了,想要回到现在的版本,或者我们要换一个设备来写,又或者我们现在需要和别人合作,这可怎么办呢?

这就是在创建第一个项目的时候要初始化 Git 仓库的原因,使用 Git 命令可以解决上面所说的这些问题。

Git 提交

Git 的提交在 Codex App 中有非常多的方式,Codex App 提供了非常人性化的 GUI 提交方式,我们会分别在不同情况下来做介绍。

终端命令行提交

这种方式不受线程状态影响,只需要打开终端,输入 2 行 Git 命令即可。

git add .
git commit -m "提交的内容"

如果你想更规范一些,可以参考开发中的提交规范,在前面加上一个英文单词,表示这次提交的更新类型:

  • feat: 新功能、新特性

  • fix: 修改 bug

  • perf: 更改代码,以提高性能(在不影响代码内部行为的前提下,对程序性能进行优化)

  • refactor: 代码重构(重构,在不影响代码内部行为、功能的前提下修改代码)

  • docs: 文档修改

  • style: 代码格式修改,注意不是 CSS 修改(例如分号修改)

  • test: 测试用例新增、修改

  • build: 影响项目构建或依赖项的修改

  • revert: 恢复上一次提交

  • ci: 持续集成相关文件修改

  • chore: 其他修改(不在上述类型中的修改)

  • release: 发布新版本

  • workflow: 工作流相关文件修改

当然,如果你使用 AI 帮你来做提交,你也可以把这段内容发给 AI。

使用 AI 帮我们提交代码

当然,你完全可以把这种简单的操作交给 AI 来做,只是会多花一些时间,多消耗一些 Token 而已。

帮我把改动提交到 Git 仓库

进阶操作

你也可以制作一个 Skill,让 Codex 在每一次代码改动后都自动提交变更的代码,例如我制作的 Skill Gitwork(仓库链接:https://github.com/Niall-Young/Gitwork),如果你想要用,可以直接使用我的 Skill。

查看提交日志

目前只能通过终端命令行查看提交日志,或者让 AI 告诉我们。终端命令如下,输入后即可看到所有的 Git 提交日志。

git log

然后,就会看到如下图所示的提交记录,在我们的测试项目中,我们只有一次提交,因此可以看到只有一次提交记录。

提交日志记录

我们会注意到上面有一段黄色的字符串,这是一段哈希值,每次提交都是唯一的,如果我们需要回滚版本,就需要借助这个。

回滚版本

如果我们在继续迭代时把项目玩坏了,怎么办呢?我们就可以回滚 Git 版本,你可以直接让 Codex 帮你执行,例如写下这样的提示词。

帮我把这些改动回滚到上一个 Git 提交版本

也可以使用 Git 终端命令来实现。

git reset --hard 之前的哈希值复制到这里

这样就会把项目代码回滚到这个版本。不过需要注意,回滚后,当前分支将不再包含该版本之后的提交,所以做好 Git 版本管理、提高提交频率十分重要。

推送代码到远程仓库

之所以把推送放在后面讲,是因为它在提交之后执行,频率通常也低于提交。更重要的是,推送操作相对麻烦,需要一些准备,这里我建议大家直接让 AI 帮你完成。

本文以最为常见的 Git 仓库云端管理产品 GitHub 的推送为例,GitLab 等其他企业应用大同小异。

准备工作

推送并不是敲一行命令就可以完成的,你必须先做一些准备工作。首先是获取 GitHub 的 PAT,即个人访问令牌。

获取 PAT

首先,你需要前往这个网站:

【暂不支持的飞书内容:类型 999】

在这个网站里,你需要新建一个个人访问令牌(PAT),如图点击新建。

在 GitHub 中创建个人访问令牌(PAT)

这里可以选择第一个,如下图。

选择创建 Token 方式

然后 Token 名称和描述可以自定义,关键是下面的内容,这里请务必按照下面截图来勾选。

配置 Token 权限

然后点击创建 Token,并复制这个 Token(请一定要保存好,后续将无法再看到这个 Token)。

创建 GitHub 仓库

你还需要在 GitHub 创建一个仓库,如下图,点击按钮后进入创建仓库的配置页面。

新建 GitHub 仓库

然后在这里配置名称和描述。你可以创建私有仓库,也可以创建公开(Public)仓库,任何有链接的人都可以访问公开仓库。这里注意不要添加 README 文档。

配置新仓库信息

然后会进入如下图所示的页面,点击复制按钮复制仓库的 HTTPS 链接。

复制仓库 HTTPS 链接

推送代码

推送只能上传已经提交到 Git 仓库的代码;如果有改动尚未提交,这些改动就不会被推送。

关联 GitHub 远程仓库

首先,你需要在终端里输入以下 Git 命令,关联远程仓库。

git remote add origin 刚才复制的 HTTPS 链接

然后,你只需要这一条命令。

git push -u origin main

然后等待推送完成即可。

后续推送

上述操作对于一个 Git 仓库,也就是一个项目,只需要执行一次,不需要重复执行。以后的推送可以简化为如下命令。

git push

推送完成后,你可以在 GitHub 中找到这个仓库,并看到所有已经推送的代码。

GitHub 代码示例

拉取代码

现在你已经把代码推送到 GitHub,代码也已经存储到了云端。在任何一台新设备上,只要有网络并登录你的 GitHub 账号,就可以从云端拉取代码到本地进行开发。同样,如果其他人经过你的同意,也可以拉取代码或推送新的代码,实现协作。

那么,要怎么做呢?

使用终端命令行实现

在命令行中,首先你要找到目标位置的路径,例如桌面。

终端中的文件路径

然后在 GitHub 仓库中复制 HTTPS 链接,操作方式如下图:

复制 HTTPS 链接

然后敲入以下命令:

git clone 你仓库的 HTTPS

然后就克隆下来了。

使用 AI 直接操作

当然,还是一样的,你可以使用 AI 直接帮你把仓库克隆到对应的文件目录下。

帮我把「你的仓库链接或者 HTTPS URL」克隆到 xxx 文件夹下

下一步

现在我们知道了如何把我们的代码和 GitHub 完全打通,让 GitHub 和 Codex 联动,但是每次都要我们来提交实在是不方便,如果我们给出提示词,例如:

每次更新迭代,你都需要执行 Git 提交命令来提交代码

但这只在一个线程里面有效,没法在所有对话中生效,有没有什么办法让 AI 每一次都遵守呢?