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

但是,假如我们改坏了想要回到现在的版本,或者我们要换一个设备来写,又或者我们现在需要和别人合作,这可怎么办呢?
这就是在创建第一个项目的时候要初始化 Git 仓库的原因,使用 git 命令可以解决上面所说的这些问题。
1 Git 提交
Git 的提交在 Codex app 中有非常多的方式,Codex app 提供了非常人性化的 GUI 提交方式,我们会分别在不同情况下来做介绍。
1.1 任意对话过的对话中
在一个任意已经开始的对话中,在右侧都可以看到这个内容,如下图,点击后即可开始提交。

点击后,就会有一个居中对话框,如下图,我们需要输入这次代码提交的变更,然后点击提交即可。

1.2 全新对话中
如果是一个全新的对话,没有右侧的看板这要怎么办呢?还是可以用 GUI,不过这里 Codex 确实是做的不如之前的版本,在早期版本中,无论是不是全新对话都是可以提交 git 的。
我们点击右上角的侧边栏按钮,选择审查,如下图。

如下图,这时候我们可以看到我们还未提交的所有变更,点击如图所示的按钮,依然可以打开提交对话框进行 GUI 形式的提交。

1.3 终端命令行提交
这种就完全无视任何一种thread 状态了,只需要打开终端输入 2行 git 命令即可。
将代码加入暂存区
git add.
git 提交代码
git commit -m "提交的内容"
1.4 使用 AI 帮我们提交代码
当然,你完全可以把这种简单的操作交给 AI 来做,只是会多花一些时间,多消耗一些 Token 而已。
提示词
帮我把改动提交到 git 仓库
2 查看提交日志
这个目前只能使用终端命令行或者让 AI 告诉我们的方式,终端命令如下,在终端中输入即可看到所有的 git 提交日志。
查看提交日志
git log
然后,就会看到如下图所示的提交记录,在我们的测试项目中,我们只有一次提交,因此可以看到只有一次提交记录。

我们会注意到上面有一段黄色的字符串,这是一段哈希值,每次提交都是唯一的,如果我们有需要回滚版本,就需要借助这个。
3 回滚版本
如果我们现在继续迭代中有一次把项目玩坏了,怎么办呢?我们就可以回滚 git 版本,你可以直接让 Codex 帮你执行,例如写下这样的提示词。
提示词
帮我把这些改动就滚到上一个 git 提交版本
也可以使用 git 终端命令来实现。
Bash
git reset --hard 之前的哈希值复制到这里
这样就会把项目代码会滚到这个版本,不过需要注意的是,回滚之后,在这次版本之后的提交就都没有了,所以,做好 git 版本管理,增加颗粒度十分重要。
4 提交代码
之所以提交要放在最后来讲,一个是相比提交,它是后置操作,而且频率远不如提交那么多,更重要的是,他相对来说更麻烦,更需要操作门槛,这里我甚至建议大家直接让 AI 帮你搞定。
本文以最为常见的 git 仓库云端管理产品 github 的推送为例,gitlab等其他企业应用大同小异。
4.1 准备工作
推送并不是可以直接一行命令敲完就可以了,你必须要先做一些准备工作,首先是获取 github 的 PAT,即个人访问令牌。
4.1.1 获取 PAT
首先,你需要前往这个网站:
在这个网站里,你需要新建一个 API,如图点击新建。

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

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

然后点击创建 Token,并复制这个 token(请一定要保存好,后续将无法再看到这个 token)
4.1.2 创建 github 仓库
你还需要在 github 创建一个仓库,如下图,点击按钮后进入创建仓库的配置页面。

然后我们在这里进行名称、描述的配置,需要注意的是,你可以创建为私有仓库,如果是公开 publish 仓库,那么就是任何有链接的人都可以访问的开源仓库,然后注意不要添加 readme 文档。

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

4.2 推送代码
推送代码只能推送已经提交到 git 仓库的提交的代码,如果尚有改动但是没有提交,那么是不会被推送的。
4.2.1 指定初始化 github 仓库
首先,你需要在终端里敲入一下 git 命令来完成仓库的指向性链接。
初始化 git 仓库命令
git remote add origin 刚才复制的 HTTPS 链接
然后,你只需要这一条命令。
推送代码
git push -u origin main
然后等待推送完成即可。
4.3 后续推送
上述的复杂操作一个 git 仓库也就是一个项目只需要输入一次,不需要重复输入。以后的提交,你只需要简化为如下命令。
推送代码
git push
当然,和提交一样,在之后你也可以直接使用 GUI 进行推送。

提交完成后,你可以在 github 仓库找到这个仓库并看到所有的代码。

5 拉取代码
现在你已经提交到 github 了,现在你的代码已经存储到了云端,你在任何一个新的设备上,只要有网络,登录了你的 github 账号你都可以从云端拉取代码到本地来进行开发,同样的,如果有别人经过你的同意想要拉取代码,也依然可以拉取代码或者推送新的代码实现协同合作。
那么,要怎么做呢?
5.1 使用终端命令行实现
在命令行中,首先你要找到你想要复制到的位置的路径,例如桌面。

然后再 github 仓库复制你的 HTTPS 的 URL,操作方式如下图:

然后敲入以下命令:
Bash
git clone 你仓库的 HTTPS
然后就克隆下来了。
5.2 使用 AI 直接操作
当然,还是一样的,你可以使用 AI 直接帮你把仓库克隆到对应的文件目录下。
提示词
帮我把「你的仓库链接或者 HTTPS 的 URL」克隆到 xxx 文件下
6 下一步
现在我们知道了如何把我们的代码和 github 完全打通,让 github 和 codex 联动,但是每次都要我们来提交实在是不方便,如果我们给提示词,例如
提示词
每次更新迭代,你都需要执行提交 git 命令提交代码
但也只是在一个thread 里面有效,没法全部响应,有没有什么办法让 AI 每一次都响应呢?