粉丝1.5万获赞9.3万

作为一名牵手式软件工程师,我想聊聊版本管理这事。说实话,入职前我完全没有代码管理的概念,自己写代码 就是本地,改来改去,经常搞混版本。工作之后才发现,版本管理简直是必修课,它不仅能帮你规范储存代码,控制权限,更重要的是当出现问题的时候,可以快速回收到任意历史版本,精准定位问题。 现在绝大多数公司使用的代码管理工具就是 git, 结合我工作中实际的使用,今天和大家分享几个常用的操作。首先是拉取代码,直接使用 git clone, 加上仓库地址,就能把远程代码复制到本地。 如果想拉取指定分支,加上杠 b 参数,再指定分支名就行。拉下来之后怎么看提交历史呢?用 git log 就 能看到所有的提交记录,如果只想看最近几条,可以加上杠 n 参数,比如说 git log, 杠 n 只看最近五条, 那么自己改完代码怎么提交呢? git 有 一个本地仓库的概念,所以提交分为三步,第一步, git id 文件名,把修改的文件 添加到赞惩区。第二步, get commit 杠 m 提交说明,将赞惩区的内容提交到本地仓库。第三步, get push 推送到远程仓库。推送之后,通常还需要在网页端,比如说 get lab 或 get hub 发起合并请求,把你的代码和物组分枝。 除了这些, git 还有很多实用操作,比如 git init 可以 在本地注册一个账户, git stash 可以 临时保存当前修改而不提交。以上就是我平常最常用的一些 git 操作,你在工作中用的最多的 git 命令是什么?欢迎在评论区留言讨论。

实际项目中如何使用好 skills roots 多智能体协调呢?今天来做一个示范啊。先看一下目录结构,打开点 tree roots 下的 project roots, 点 md 这个文件,如果没有,可以手动创建一下, 设置这么几条规则,如果用户输入了杠 get, 请减速当前的任务描述并部署到服务器。手动提交不比 get 快 多了吗?并不是啊。 首先 ai 会分析当前的代码,然后帮你设置好要提交的描述,在有必要的时候,它会设置好需要忽略的文件。 甚至你可以告诉 ai 啊,你只想提交和哪些模块相关的功能, ai 会自己分析需要提交哪些文件。那你可能觉得这不也很浪费时间吗?哎,并没有。 get 提交和其他任务啊,是不会冲突的,完全可以变形,你只需要输入一个杠 get, 就 可以去干其他事了,所以反而更快。 回来我们继续看其他的规则配置啊。这里我写了很多规则,是让 ai 持久化记忆每一次对话的详细过程,以后如果有需要,可以让 ai 解锁记忆库啊。 重点是这里啊,我明确要求 ai 不要自己去做具体的任务,只需要做好调度,制定计划。如果涉及到写代码,就调用工程师智能体,让他先熟读开发规范文档以后再进行开发,然后把开发规范文档的链接给他。 开发完以后,调用代码检测员检查代码是不是符合规范。之前不是已经让 ai 按照规范开发了吗?为什么这里还要让检测员再按照规范来检查呢? 因为写代码需要消耗超长的上下文, ai 经常写着写着就把规范给忘了,所以这里要让检测员根据修改的代码,再去按照规范检查一遍,就不容易出错了。 然后调用图书馆馆长来维护文档。最后是要求 ai 把绘画持久化存储为文件。好,规则里写了这么多智能体,怎么定义这些智能体呢?非常简单啊,你只要告诉 ai, 请按照项目规则帮我创建相关的智能体就行了。 好,我们看到 ai 已经在点翠目录下创建了 a 整数目录,按照要求啊,它已经创建了四个智能体了。 最后我们验证一下这些项目规则能不能生效啊。现在我向 ai 提了一个需求, ai 开始分析好,然后他调用了 python 工程师写代码,写完代码以后,又调用检测员开始检查好,没问题。 哎,这里检查出问题了。检测员明确指出啊,这里违反了数据管理条例的第五点一条, 因为我在代码规范里写了,凡是涉及到数据操作的,必须用 data manager 这个类来操作。这种项目级的规范, ai 是 特别容易忘记的。这里代码检测员就能给检查出来,因为它的上下文比工程师要少很多,只有规范文档和修改过的代码,所以它就能检查出来。 再往下看啊,违反异常捕获规范。因为 ai 特别喜欢 try catch 吧,所以我严格要求 ai 不要乱用 try catch, 还检查出来了很多其他问题啊,什么代码片段重复,没有封装好啊,存在硬编码类型提示不统一啊,等等啊,这就是多 agent 协同工作的重要性,让每个 agent 都有自己独立的上下文,更专注一个领域,这样工作就更搞笑了。 好了,最后说一下我在做的这个项目啊,我是准备做一个客户端软件,一键下载视频和转文字。我之前也没有做过客户端软件,所以这个项目我会全程不手写一行代码全由 ai 完成,而且是国产免费的 ai。 我 也会持续分享项目上的实战技巧啊, 后续也可能会把项目开源出来,包括所有的文档结构啊,路由啊, skills 的 配置啊,还有 ai 的 绘画记录等等啊,有兴趣的兄弟可以关注一波啊,拜拜了。

你可能会遇到这种情况,你给老师、同事或甲方发了一个文件,他说再改一下,你就改了,再发过去,然后再改再发。等十个版本后,他回复你一句,还是第一版吧,哈哈。 然而当你打开文件,却发现,哎,第一版是什么样的崩溃?从此以后,你就养成了一个习惯,文件一点零,二点零、三点零,修改版,最终版,最终修改版,打死也不改版,打死也不改修改版,打死也不改最终版,等等。 哈哈,是不是很烦?单个文件还能这么将就,但如果是几十个几百个文件呢?绝对是地域级难度。于是 get 就出现了一个开源的分布式版本控制系统。当你每次修改很多文件提交后, 他都会自动创建一个项目版本,你可以通过他看到每个版本不同文件的不同差异,也可以随时回退到某个提交时的状态。最大的好处是,其他人也可以同时修改复制一份过去,改完发给你会自动合并修改的部分文件。 是不是很方便?我们来演示一下。首先要求你有 vs q 的和 get, 我在边窗环境配置内结讲过没有的赶紧去看一下,按照说明下载,我这里默认你已经安装好 get 了。 先用 vs 扣的打开一个电脑上的文件夹,然后创建一个 test 点, txt 文件, test 就是测试的意思, txt 就是文本文件,看小说的应该都知道,文件里面写内容为零点一。再来新建一个终端, 这就是电脑的命令式界面。在图形界面操作出来前,以前的老电脑都是用这个黑框框操作电脑的 pwd 就是显示当前终端绘画所在的目录位置,可以看到是地盘的二一零一目录,对吧? 然后 ls 是显示当前目录下的所有文件,可以看到有刚刚创建的 test 点 txt 文件。 cd 是切换目录,不免跟路进两个点是上一集目录明是进入下一集,这期知道这三个命令就行,多练一下 认终端,去逛逛你的电脑,其他的命令我们以后再学,感兴趣的可以自行搜索,提前了解好。我们看 git, 先用 getversion 输出一下 get 版本号,确认你是否已经安装 get, 如果有显示版本号,则说明你已经安装好了。然后我们设置一下自己的昵称和邮箱, config 是配置的意思,刚刚格拉伯是全局的意思,优则是用户内幕是昵称妙式邮箱。大家一定要严格,每一个空格和标点符号 一定要用英文标点符号,双引号里面的内容你替换成你自己的就行。我们在当前目录输入 get 以内特,以内特就是初始化单词,就会在当前目录初始化创建一个点 get 隐藏文件夹, 这个文件夹里会保存我们文件的每个 get 版本记录和变化。出手画之后,其实文件还没有被记录,我们要使用命令 get a 的把文件加进 get 版本控制 系统中, ad 就是添加的单词,命令后面要跟文件名,比如这样 get ad test 点 txt, 就把这个测试 txt 加进去了。那如果文件比较多怎么办?一个一个添加太麻烦了。 就可以使用 get 爱的点,这里点号代表当前目录的全部文件,添加进去之后, get 只是暂时保存,还不会保存提交记录,我们还要使用 getcome 的命令。 cmeter 的翻译就是提交,可以把刚才暂时保存的变更提交固定成一个版本。 getcome 的试一下,会打开一个叫威姆的终端编辑器,让你写提交说明。 最后所有新手在这一步都会踩坑,因为威猛的操作比较反人类,打开威猛的时候默认是不能写东西的,你要按 a 或者 i 进入编辑模式,然后写几个字的说明,我们就写第一次提交,然后切记先按 e, s, c 退出键退出编辑模式,然后再输入英文冒号,注意是英文状态的冒号, wq 两个字母代表保存并退出,左下角就是命令显示, 输入后按回车才可以完成编辑。退出到终端目录可以看到显示了提示。一个文件改变了一行新增 get 都是按行来对比文件不同的就有两种情况,新增删除,如果是同一行的修改,那就是同时删除一行,新增一行。 好,新手只需要知道这三步就行了,其他的遇到再查,本次提交就完成了。 get 会保存这次提交的文件数据,我们用 getlog 命令看一下 提交信息, log 的翻译就是日制,你的每次提交 get 都会记录日制信息,这个命令可以显示出来,我们看日制格式。 comet 提交后面一大段字符,他是这次提交的随机 id, 作为唯一标识, 奥赛是作者的英文单词,就是你刚刚设置的昵称和邮箱带,它是提交的日期,在下面就是刚刚写的提交说明了, 然后我们再来修改一下文件,把内容改成为零点二 sq 的自带提示,你现在那个文件会显示绿色,修改一个文件会显示橙色,表示他和上一次提交的数据不一样。再来执行一遍 get a 的点, 这次我们试一下添加所有文件,然后 getcome 的杠 m, 呃,双引号第二次提交,哎,这里我 用了杠 m 空格双引号命令。这是写提交说明的简化版操作,他就会跳过 vim 编辑,大部分人都会用这种方式写提交说明给他 log 看一下没问题。最新的在最上面再来写一个 v 零点三。同样执行一遍 get a 的点, get cme 的杠 m fix 括号 test, 冒号 change content。 这次提交是规范了一下提交说明,这个只是一个分格规范,不是硬性要求的,目的就是为了让其他人一目了然你的版本修改内容。比如最开头一个 fix 就是修复的英文单词, 后面一个括号写上修复的文件或模块冒好,后面写修复了啥,颤着康腾的翻译一下就是改变内容。就是如果你要参与国际 项目,那么一个规范的提交信息和英文是必要的。还有一些规范词,你可以搜一下 geek me 的分格,自行了解自己项目无所谓,自己能看懂就行。其实现在很多人也不用中断来操作了。 vs 扣的自带界面版的 get 操作,我们写一个零点四, 然后左边可以看到有一个文件改动的提示。点一下这个修改的文件,可以看到对比视图,左侧是上一次 come 的内容, 右侧是目前的内容,上面有个对号的按钮,点一下提示,我们没有可以卡密特的赞存文件,是否赞同,所有更改点试就行,他就帮你执行 gay 的和给的卡密特了。 然后你在上面输入一下 come 的消息,也就是说明按回车就 come 的完成了。给他 logo 一下,可以看到信息 vs 的自带所有基本操作高级的功能。你可以安装一个 get history different 插件,可以看到所有历史提交,可以对比文件前后的区别等等。 get 有很多功能,但是想要学会他们看视频文章是没有用的,这个必须在你实际工作中才能学会。去菜鸟看一看所有功能,具体的用的时候再查吧。 那如果我想回退到某个版本怎么弄?首先 getlog, 看一下这几次的提交,复制一下某一次的卡密塔 id, 我这里复制第一次的提交 id, 然后输入 get reset 刚刚哈的 commy 台 d 就可以回退到这次提交时的状态了。可以看到文件内容变成零点一了。 getlog 一下也发现没有,后面的 比赛的翻译一下就是重置的意思,刚刚哈的是重置的模式,是硬重置,另外还有 soft 模式和默认的 mixt 模式,大家自行搜索了解。 但是瑞赛的不仅回退了,也把后面的清空了。我们想要在不同版本中切换怎么办?这时候就可以用分支 branch, 顾名思义,分支就是把当前版本复制一份。 你可以在 committee 第二次的时候用 gete branch 零点二命令创建一个零点二分之 gate commit 第三次的时候创建一个零点三分之 第四次的时候还是在主分支上, 然后用 check out 命令不断切换分支,可以看到可以随时变更。 奔驰的作用还不仅仅是切换版本,更重要的是你可以在主流上继续写代码,也可以在支流上同时写,然后某一天把这两条分支运跟墨制合并在一起。你可能会说,这不是多此一举吗?一个人当然作用不大,这主要是用于团队写作。 一个团队开发项目离不开分支,比如说我们项目现在的主分支是一点零版本,然后一点一版本要添加五个新功能,我就把这五个功能分配 可以给五个小伙伴,他们就在一点零版本上不让吃出去一个自己的版本分支就是命名为功能叉叉叉啊,然后五个人同时开发,到时间后,我在主分支上把他们五个人的五个分支都末制过来,合并在一起 再提交,并使用 gtag 打标签,生成一点一版本。团队开发互不影响,但又可以同时协作。 举个形象点的例子,这是一个 word 文件,我列了一二三四五五个小标题,让五个人同时写这个文档,他们各自都复制了一份到自己的电脑上,这就叫分支 文档,命名为自己的功能名,然后每个人写完自己的段落后再发给我。我打开每个文档,复制他们写的内容,粘贴到主文档中,依次粘贴完 南城就叫墨纸合并,最后另存为一点一文档,就是 come 或者踏个。这样一解释,大家应该懂了吧。 那么团队协作肯定不能在同一个电脑上,这时候就需要找一个服务器搭建一个 get 仓库服务。自己搭建也不难,有 getlab 之类的开源库,可以做企业私有服务, 但是大部分人没一个条件,或者就是懒得搭建,那么就可以使用 gtop 或者 gt e 这种公共的 get 仓库,其实说白了他们就是是个符合 get 操作的网盘,网盘大家应该懂吧, 我们来 get hub, 前面让大家注册了,不多说,点右上角加号 new repository 啊,创建一个仓库,起个名字,选择归宿,你们可以不用变,我就选归宿,在远道组织选择 party, 可公开 你私人的项目,可以选 private 私有不公开仓库。点下面可瑞特创建,进入后会有教你出示化的设置,我们就按照他的指引来 上面的以内特艾特卡米特我们都知道了,这里我复制一个 read me, 点 md 文件过来,这个上期说了是项目的介绍文档,艾特一下,再卡密特一下。 接下来就和下面的一样,三个命令,第一个 get branch 杠,大写 m 啊命,意思就是创建一个命分支,并把主分支切换为命。 第二个 get remote 爱的 origin, 一个你的仓库地址链接,意思就是添加一个远程仓库地址,相当于给这个 get 项目设置一个网盘地址,这样他就知道要上传 传到哪里了。第三个 get push 杠 u orange mean push 就是推送上传到网盘啊,也就是 get up 完成,然后会提示你输入用户名和密码,你就输入 get up 的邮箱和密码就可以了, 终端会输出上传信息,完成后来网页这边刷新一下,可以看到上传成功。然后我来教你们怎么参与开发开源项目,我这个仓库是帕布里克的,你们就可以参与进来。 首先你来我这个项目的地址,然后点击右上角的 folk, 就相当于把我的代码库复制到你的账号里面了,类似于不让你吃,当然了,你也可以再点个死哒,给你的第一个开元项目点个赞,收藏一下,然后右上角回到自己的仓库,可以看到已经 复制过来了,这就是元岛创建的项目,在个人账号下的 branch, 点这个 code, 复制一下你仓库的 https 链接,然后你在自己电脑上找个文件夹,用 vs code 打开新建终端,输入 gate clown, 你的仓库链接空格点号,也就是英文的句号。这个命令叫克隆,克隆人知道吧,就是把网盘上的仓库克隆到本地电脑,如果失败的话多试几次,网络问题你懂得。看我上期的解决方案, 可以看到我已经克隆下来了,但是现在这个是基于你自己的仓库的,使用 get remote 杠 v 命令,可以看到只有你自己仓库的链接,这时候我们再去原道的仓库复制一下,像 我们的链接回到本地,用 get remote add upstream 链接添加进去,这个就是添加上游代码库的命令,再 remote 看一下,有了。 如果你要给别人加功能,可以先创建一个分支,我们使用 get check out 杠币康文昌来创建并切换进入康文昌的分支。 现在我们创建了一个文件夹, members 伙伴啊,你们不用创建,然后再创建一个 json 文件吧,我们唱点 json, 里面写一个 json 对象,内蒙式昵称 url 地址是个人网站保存, 拿标准流程过一遍, get it, 点 get commit gun m, 然后 add 括号 member 冒号, ctrl get push 一下, 好,回到自己的仓库,可以看到已经有这个分支了, 这时候我们就来爱丽丽的仓库点这个 pose 次拉取请求,简称 pr, 进去后点六新建 pr, 这里 bus 就是根源选择 r 一零一的命分支, ctrl 就是比较选择你自己刚刚创建的分支,选择后如果选 是绿色对号, apple tomas 是可以合并的意思,那么你就填写 pr 信息标题和内容,点右下角 create 创建 pr, 你就提交成功了。 之后你可以在评论区来发个评论,提醒我一下,我就会去操作合并进驻项目,你的第一次开源贡献就完成了。 如果没有显示绿色对号,那可能就是在你写代码的时候,我提交了新的 comet, 导致版本不一致。这时候你就需要先更新一下本地版本,执行 getfix upstream, 从上游更新一下最新代码,然后执行 good mordge abs dreme, 把远程的最新代码合并到自己的分支中,再执行 goodboost 推送上去,这时候快点去提交 片就可以了。好,那么 get gtop 的入门就完成了。同样的流程也适用于 gete 和 getlebe。 本期的内容比较抽象,但是如果你要找工作,或者是和别人协作开发项目,也或是参与开人项目,这个东西是必须要学的, 你不会 get 人家要你干啥?让给代码文件添乱是不?哈哈,所以啊,大家一定要实践实践,实践练的多了就会了,我把第一次如何完成已经教给你了,剩下的你就需要练习练习练习。 最后,本期这种枯燥内容数据,哎,就是很差,但他又极其重要,我必须负责教给你们,不能像营销号一样啊,难得不告诉你,就给你看看轻松炫酷的,对吧?所以既然大家都看到这里了,希望能三连支持一下。本期的作业 就是提交你的第一次开源贡献,第一次 pr, 一定要练习啊!下期我们把元导的零点二版本持续升级,从实战中学习,拜拜。

在我们使用 cloud code 的 时候,如何在底部实时显示这个状态栏的信息呢?今天给大家详细说一下。就是第一行,它主要是大模型的名称,然后当前的时间点。 effort low 指的是推理努力程度, thinking 就是 当前是否思考模式,这个是 cloud code 的 当前的版本号。 然后第二行指的是当前的工作目录。第三行,这个 c t x 就是 context, 就 上下文的信息,百分之十七就是当前已已经使用的上下文的占比,百分之八十三是剩余的。这个 size 就 指当前呃上下文窗口的总的数量,然后 in 和 out, in 就是 总的输入的量和 out 是 总的输出的量,就是 大模型从你这个绘画窗口所有的输出就 total, total in, total out。 第四行 in and out 其实就指的是单次的 它的输入输出,单单单次印是十二 k, 然后输出只有九个,就像我刚刚说的,你好,你问有什么我可以帮你的吗?其实这就是九个投屏的量,然后 crt 和 r d 我 给大家列在这了。 crt 就 指的是 cash creation, input tokens 就是 写入缓存的投屏的数量,然后 k 呃 r t 就是 指从缓存读取的投屏数量,都是 api 响应的。对,然后这里面的信息它是实时变化的,我给大家演示一下,如果我们想切换 model 的 话,当前是 k 二点六,我把它换成智普的五点一, 这样就会实时的变化,然后 effort 也是实时变化的。对, effort 当前是 low, 把它调成 medium, 这样就会变成 medium。 对, 然后呃当前的输入输出,这是本,这是当次调用的嘛,所以我就用 kliya 来试一下 kliya 清空,清空之后这样应该是 你看 kliya 之后,它这样就会变成零和百分之一百,就当前的上下文只有百分之零和百分之一,呃,剩余的是百分之百,如果输入你好之后 刚有点卡住了,输入你好之后,它第四行就会有本次绘画的输入,输出嘛,所以第四行就会展示,呃,就会实时展示出来 in out, z, r t 和 r d。 对, 这就是这个我觉得是比较好用的,因为我们在使用模型的时候,其实上下文越多的时候,有很多研究人就是发现,当我们的 token 数量超过百分之三十到四十的时候,其实大模型就会出现,呃,语音信息不清啊,或者幻觉一些之类东西就会丢失掉,关键信息就会出现这种信息的缺失的问题。 然后,呃,这个怎么安装?我给大家也写成了一个,整理成了一个文档,也可以看一下。就是这边它是 stencil, 因为这个东西它本来就是为了适配 glotcode 的 官方的,所以我们本地安装适配的时候其实是会有点问题的。 然后这边采集点也给大家记录了,就是直接拉你状态,状态来的话,它就在终端底部的信息条嘛,它可以显示模型的名称,时间,这些上下文的使用率, api 的 用量等等。但我们最主要的其实就是上下文窗口的使用率,剩余空间以及 api 的 令牌,输入,输出缓存,数据限制等等。然后核心的字顿都是列在这了。对, 可以看一下它的字顿啊,它有绘画 id, 它当前的工作,工作的目录 current workspace, 呃, direct to directory, 然后这个是成本啊,是否使用思考模式脱离努力程度啊?包括这个累计输出,呃,累计输入 窗口的上限,然后这个有几个问题给大家,就是确认一下,就上下文窗口这边为什么始终是两百 k 呢?就是因为它这个是 cloud code 的 默认值,但第三方模型实际显示可能不同。但,呃, 之前他这边是为了适配 cloud code 的 官方的模型 versus, 但是像我们我买的是火山引擎的 coding plan, 他 就不会实时的变化。对,他这边就两百 k, 其实就是 比较不准确的,包括他这个刚刚这个百分比的计算,其实就是 in out 除以这个他这个标的这个两百 k, 所以 这边比如十二除以这个十二加三十六除以两百 k, 大 概是百分之十七的样子,所以他这边百分之十七。但我们主要是看第四行,就是当前输入了多少,输出了多少呢?就单词绘画 这样,其实对我们就帮助就比较比较大了。然后速率限制的话,它也是仅限于格拉库的 ai, 就 你这也是我当前在 这个使用模型过程中的一些体验啊,就是我们在适配一些,呃,比如国外的一些东西的时候,其实我们要很清楚的理解它的自身,才能明明白如何更好的落地化帮助我们使用,而不是只有这样一个形式。但是我目前比较清楚了,这些自身就可以让它调整一版自己使用的这个东西,也可以跟我这不一样。 对,然后这些颜色的代码啊,这些坑点我已经给大家踩过坑了,大家直接呃在我们这些借鉴其实就可就可以了。像它中文路径,它显示乱码,因为有的文件夹里如果是中文的话,它会显示乱码方块,它这个脚本就会显示不出来,就是脚本就会失效,就显示不出来,比如这个字顿的位置。搞错呀, 它不是顶层子盾,它是这个 context window 内部的这个子盾其实就是,呃,就 context window 它是顶层子盾,但底下还有一个,还有一些嵌套的子盾这种这种坑已经帮它大家踩过了,大家配置的时候注意一下就可以了。

你团队中使用这个 get 有 哪些关键要注意的一些事情?需要注意,分资混乱、代码冲突、版本回滚困难。 ok, 这道题的一个核心,考团队的一个协助规范, get 流程管理和风险的一个规避能力。关键你要注意事项可以分为这几类啊,能大幅减少这个协助的一个问题。 一是分支管理规范,必须统一分支管理,避免分支混乱。一般使用 git flow 来管理这个版本的流程,主要包括分支类型管理、分支流转规则的一个管理,以及定期清理无效的分支。 第二个是提交信息与内容的规范,保证提交记录可追溯、易排查。主要包括提交信息要同一个格式,对于大功能要拆分成多个小的提交方式,方便后续的一个问题。定位和回滚 无关的文件要用 get ignore 的 一个文件去过滤,避免对项目仓库造成污染。第三,协助流程的一个管控,避免冲突堆积和操作混乱。比如提交之前一定要先拉取最新的代码,谨慎使用强制推送合并分之前先要自测凭证通过,理解了吗?嗯,好。 最后视频配套的面试题答案都整理在评论区了。另外,如果近期面试受阻,没有面试机会,我们也有面试突击陪跑服务,可以私我咨询。从简历优化、项目包装技术突击、面试突击、项目业务难点亮点梳理、模拟面试、面试复盘并向内推等。

嗨,我是佳曼,前两天有人在评论区许愿,让我聊聊 get, 同样是小白的我,如何用 ai 搞定它呢?在学之前,我做项目就像战场一样,桌面东一坨西一坨,找东西只能靠 ai 来帮我,全剧搜索浪费托管不说,而且还非常耗时。用起来之后呢,我的思路就 觉得越来越清楚,像思维导图一样就铺开了,那做东西呢,也越来越有秩序感,我不会代码,我是怎么用 ai 配合 get? 简单五步,带着你们的 ai 跟我走一遍吧。在桌面新建一个文件夹,我们教他 my project, ok, 接着我们打开终端,召唤出 globe, 把我们这个文件夹拖进去,然后跟他说帮我出实化 get, 我们直接点 yes, 搞定了这个全程呢,不到两秒钟,我们让他建一个 index html, 写一句 hello world, 我 们打开文件夹看一下,这个就已经写好了, hello world 跑通了,我接着说帮我存档一下,他给我做了第一个 commit, 就是 这一行,很简单对不对?直到有一天, ai 把我的代码改崩了, hello world 改成一堆乱码, 看他现在是已经一堆乱码,完全显示不出来。 hello world, 那 这个时候怎么办?不要慌,因为我有存档,所以我可以跟他讲说,回到刚才那一版, ok, 回到 hello world 那 一版了,我们再打开看,他是不是就恢复了,这个就是后悔药,是不是学会这一步,心里就踏实多了?如果说我想给这个网页换一个页面,搞坏了怎么办呢? 这种纠结呢,是之前我在写 word 文档的时候,经常会存在的一个问题,不敢直接去改原文,那我们就用另存为是一个道理,改完喜欢就覆盖原文,如果不喜欢我们还可以回到原来的那一版, get 也能这么干。所以我们也可以直接跟他讲说另存一份,我想是个新的设计,那这样就复制成文件, 两个并存,我们直接去选二,开一个分支看,他说现在改这个就不会有影响。 ok, 那 我们在新建的这个里面去改一下,让他把 hello world 改成一个酷炫的动画。 ok, 可以 看到现在就是 hello world 一个动画效果改完也跑通了。所以现在呢,我们这里面有两个版,一个是确定了的原版,第二个呢就是我们做的动态的尝试的新版, 互不干扰。好了,写到这里呢,我突然想到一个就是如果哪天我们的电脑坏了,那我们这些代码怎么办呢?接着我们就要第五步,之前呢,我有分享过一篇 github, 他 就可以帮我们解决这个难题,我可以直接跟他说推到 github 在 这里呢,他会问我们,第一个呢,就是我们是建一个新的仓库,还是说直接就用这个名就可以了, 我们可以新建,新建库之后呢,我们一定要选择是公开还是不公开,但是这个 private 呢,它只能是别人看不到。你真的要保密的东西,最好不要上传到 git, 所以 如果是很私密,不想上传,不想让人知道的东西呢, 还是要另存一份到移动硬盘,这才是最稳妥的。走完以上五步,想必你的 get 也能很快上手了。我们回看刚才发现没,我说的全部都是自然语言,也就是白话。现在有了 ai 的 加持,固定门槛变低, 不会代码的我们也能用白话对标程序员的逻辑去做事情,还有什么想知道的?评论区许愿。我是江南 jama, 我 们下期再见,拜拜。

纯小白零基础的 ai 入门教程第三期来了,前两期我们讲了 api 和 token, api 是 ai 的 大门, token 是 门后 ai 算成本的单位。这一期我们来讲一个使用 ai 编程工具时一定绕不开的词, git。 你 有没有发现啊,一些教程教我们装热门 ai 编程工具时,比如 code, code 的 code 第一步经常是让我们去装 git。 很多小伙伴看到的第一反应是,我只是想用个 ai 啊,为什么突然又冒出来个 get? get 到底是什么?为什么 ai 工具这么依赖它?还有我们经常听到的 get hop 和 get 到底又是什么关系?今天这一期,我们还是用零基础小白能听懂的方式加实际操作,把 get 讲明白。 为了方便我们理解,先做一个最简单的比喻啊, get 你 可以理解成给文件拍照的工具,有点像 wps 里的历史版本,它会把文件在不同时间点的状态一份份记录下来,你不但可以知道这次到底改了哪些文件,具体哪几行发生了变化, 还可以直接回到之前那个正常的时间。快照 get 以后, ai 工具才能更清楚知道它改了什么,哪里发生了变化, 如果改崩了,又该怎么退回去。所以在 ai 编程时代, get 很 像一个项目的时间记录系统, ai 负责改, get 帮你记 好理论。就这么点,我们接着来实际演示。如果你的电脑里没有装过 get, 我 们可以直接去下载。安装过程非常简单,装好后在终端里敲入 get v, 然后回车显示出版本号,就说明安装好啦。 之前也说过,终端简单理解就是直接和电脑底层说话的窗口好,下一步是创建一个文件夹 demo, 然后用 vs code 打开。 vs code 可以 理解为编程常常使用的超级记事本,功能非常强大。 vs code 的 安装也很简单,也是无脑点,下一步就可以,然后新建一个文件 demo, 点 md, md 不是 脏话的缩写啊,你可以简单理解成一种超级适合写笔记,写说明文档的文本格式。然后我们在 demo 点 md 里面随便写一句话,比如这是我的第一个 get 演示文件。接下来重点来了, 我们点击 westco 的 左边 source control 这个按钮。如果这个文件夹还不是 get 仓库,这里通常会出现一个按钮, initialize 仓库,意思就是出示化 get 仓库, 也就是说,从这一刻开始, get 就 可以记录这个文件夹里的所有变化了。当然你也可以不用按钮,也可以打开 vs code 里的 terminal, 也就是终端输入 get in it, in it 就是 通俗化的意思,你可以理解成给这个文件夹正式创建 get 存档系统。这就是我们学到的第一个 get 命令了。 不过现阶段我们不需要死记命令,因为以后很多操作都可以让 ai 工具,比如 cloud code 帮我们做。 vs code 左边的 source control 按钮出现了一个数字一,这个一的意思是有一个文件发生了变化,这是 get 很 重要的地方,它会直接告诉你现在有东西变了。 接下来我们可以在 source control 这里输入这次修改的说明,第一次码一般可以写 first commit, 然后点击 commit, commit 你 可以理解成正式拍一张快照,也就是把当前这个状态记录下来。这里要注意一点, commit 不是 上传 commit, 只是把这次变化记录在你自己电脑本地这个 get 仓库里, 真正上传到 get up 通常叫 push, 这个我们后面再说。现在我们再修改一点内容,比如再加一句,以后我会让 ai 帮我改代码, 然后再次 commit, 这样 get 就 又帮我们拍了一张新的快照。以后如果代码改乱了,我们就有机会知道之前是什么样子,现在改了哪里,要不要回到之前。这就是 get 对 ai 编程最重要的意义, ai 可以 帮你快速改,但 get 会帮你留下记录。 好到这里,我们已经完成了最简单的 get 操作。是不是没有更复杂的功能,比如分支合并 这些以后如果我们和别人一起做项目,一定会遇到。但阶段我们的目标只是用 ai 做一个自己的网站,所以暂时不需要一上来就学那么多,我们只要先知道 get 可以 记录变化。 commit 是 本地存档, ai 改代码前后,我们可以对比和回退,这就够了。接下来我们再聊一个很像的词, get up。 get up 不是 get, get 是 你电脑里的工具。 get up 是 一个网站,你可以简单理解成 get 是 本地存档系统, get up 是 云端代码平台,比如刚刚这个 demo 文件夹, 现在只存在我自己的电脑里,如果我想把它放到网上,让别的电脑也能看到,或者以后换电脑还能继续用, 就可以把它 push 到 githop。 push, 你 可以理解成把本地 git 仓库上传到 githop 云端仓库,这样你的代码就不只是在自己的电脑里了。以后如果有合作伙伴也想一起修改它,也可以从 githop 上把这个项目 clone 下来,修改后再退回去。 不过这一期我们只做一个简单认识,先不要贪多。如果说 api 是 你连接 ai 的 门, token 是 ai 读写文字以及计算成本的单位,那 git 就是 ai 帮你改写代码时 最重要的安全记录。下一期我们可以继续讲安装和使用 ai 工具时经常会遇到的概念, node 点 g s 和 n p m 我是 白枣。如果你有想一起学习的 ai 技能和工具,欢迎评论区留言哦!

上个视频我们让 ai 星球的任务列表,这个视频需要简单了解一下 git, 那 git 是 什么? 我们为什么要用 git? 用游戏存档的原理我们三分钟讲明白。在玩游戏遇到 boss 时,或者对当前结局并不满意时,我们就可以先存档,然后去打 boss。 如果输了,不用再从头开始,直接读起存档。写代码也是这样,如果一个功能非常复杂, ai 修改后把之前好的功能也改坏了,我们就可以读起存档,从存档的位置重新开始。这是我们经常会用到的 get 指令,以及在游戏存档中对应的操作。说了这么多,我们来实际操作一下就知道了。我在 d 盘的根目录下创建了一个名叫 repartoris 的 目录, 用来存放我们的 git 仓库。通过下面的命令,你就可以新开一个存档,其中叉叉叉是你项目的名字。我们先切换到其他目录,再使用 git clone 命令克隆一下这个仓库。 可以看到在这个目录下多出了一个 git 文件夹,这个目录下所有的文件就通过 git 管理起来了。比如现在我在这个目录下新建一个文文本档,随便打几个字,然后使用 git add 和 git commit 命令进行存档。 git add 杠 a 表示添加所有文件到暂存区。 git commit 杠 m 测试表示将暂存期的文件存档,存档的名字系测试, git push origin master 表示将本地的存档同步到来源。 git 服务地址,我们这里的 git 服务地址就在我们本地。 如果你在 git clone 时用的是 github 的 地址,存档就会被同步到 github 的 服务器。如果记不得原 git 服务地址是什么了?我们可以使用 git remote 杠 v 查看,使用 gitlog 查看存档列表。 现在我们打开一下刚刚的文文本档,改成 java 是 世界上最好的编球语言,如何读取寄钱的存档呢?很简单,使用 git reset 命令就行了,后面那一串需要通过 git log 获取。执行后你会发现 php 依旧是世界上最好的编球语言。 这时候我们有的同学就不服了,说 golem 才是世界上最好的编程语言,那我们有没有办法两全其美呢?有的兄弟,有的我们可以使用 git branch 创建一个分支,再使用 git checkout 切换到这个分支, 改一下保存并退出,再使用 git add 和 git commit 存档一下,这样大家就都能满意了,你可以理解为平行世界。 此习,我们在文文本档里追加了一段话,不接受任何反驳。 p h e 那 边我也想要追加这段话, 这时候就可以用我们的 git merge 命令了。第一步,先在勾论机分机创建一个存档。第二步,切换到 master 分 机。第三步,使用 git merge 勾论机命令,你会发现勾论机分机的存档覆盖了 master 分 机。最后我们总结一下, 现在你已经掌握了 git 基本用法,快去自己试试吧。

好,今天我们来啊,就是使用我们这个随身工作台来使用我们这个 get 仓库的一些功能啊。我们首先呢因为我们这个设备已经插上了, 所以说我们现在去打开这个浏览器呢,我们去新建一个仓库,也就这个域名呢,我们是内置的默认的一个域名,直接打开它就行了,然后我们输入然后密码啊,这时候我们就可以保持登录, 这就是我们现在的一个功能界面,这里呢是服务器的一个状态,然后呢这里是最近的一个仓库的一个使用,然后我们这里呢也有中英文切换啊,中英文切换 我们也可以英文,如果啊国际的方式的话,我们就可以使用英文,然后也有中体中文讲解中文,然后我们来来看,主要这一次我们主要来看一下这个仓库, 我的仓库这里我有很多的项目了,目前来说我有很多项目,因为我的所有的项目都在我的本地上了,所以话我啊 以前会有一个云服务器,但是云服务器的会,就是你使用过多的时候他会过期,之后呢我就没办法,我们的那个项目一多啊,就是你要移植下来就会比较麻烦,那时候的话我们就呃会非常费劲啊, 呃,如果有,有了我这个东西了之后呢,其实有了我这个随身服,呃,随身工作台呢,现在呢我的所有的工作的这些代码呀和项目这个管理啊,都是在这个服务器工作上去进行的。 然后我们新建一个,我们做一个测试的啊,测试的一个 test demo 吧, 测试仓库,好,这时候我们就有会创建一个测试仓库了,这时候我们把它复制过来,这样子呢我们就可以拿到我们的,然后它这里呢会显示一个空的一个项目, 也就现在目前来说的话,我们这里是一个空的,我们也可以添加远程的啊,这一次我们先不展示,我们只做这个仓库的一个使用啊,你比如说我们在这里新建一个 note pad 啊, read me 吧, note pad, 这时候我们会创建一个新的文件,然后嘞这是,嗯, test demo, 这是一个测试仓随身工作台的测试仓库。 好,我们已经添加完了,然后这时候呢我们添加进来,我们就叫初步化了 啊,这时候我们的这一个文件呢就已经创建好了,现在目前我们是在本地,本地的话我们没有这个推进,推上来,这时候我们把它推上去,也就是 push 啊,跟 u, 我们直接后续吧。好,这时候我们的这一个呢 must 这个分支呢, 就是主的这个分支啊,我们就已经推上去了,也就是我们现在目前来说,我们这里我们刷新一遍,这时候我们看到了本地是有这个文件了, 这时候我们可以看到我们,呃,在这个底下里面,我们本地仓库呢推来的这个项目的文件了, 这是呢就是我们像我们啊,做代码的人,就会还有一些做互联网工作的人参与这个项目开发的,这种人呢,他都会有这种这方面的一个啊,可能这个需求啊, 现在目前我们这个代码呢,他就会每随随着我的这个移动呢,他就会跟着我跑,就是啊,我在家里面,我直接家里有电脑。好,我插上这个东西,然后我也可以直接直接就开发了,假如说办公室有电脑,我不用带着我的电脑来带去办公室了, 这时候我直接带着我这个随身工作台呢,也是可以啊,直接进行工作的一个啊处理啊。 我想啊,这一次我们就演示这个创建这个仓库的一个功能,但是我们中通过了同步,同步远程的仓库,来,我们来试用试一下,我们这一次就讲到这里。