粉丝116获赞542

来的课程呢,给大家介绍一下 get, 我 们上次的课程呢,是给大家介绍了一个 webpack, 我 们的项目打包的工具,对吧?那这节课,呃,以及接下来的这节课呢,还是给大家介绍一个工具,那就是,呃, get。 那 首先我们第一个要知道的就是我们 get 呢,它是个 干什么的,对吧?它是什么的工具? ok, 那 这儿呢?其实它是一个版本版本呢?控制工具, 版本控制工具,那什么叫做版本控制工具呢?首先版本大家应该都知道,比如说大家在打游戏,或者说我们在使用手机 app 的 时候, 对吧?他都有时候让你去进行一个升级,以及我们手机他也会升级,那升级更新之后呢,又是一个新的版本,对吧?那每一个版本的不同,这个呢就是叫做版本,那控制是什么呢?就是控制, 呃,我们日常比如说使用别的,对吧?控制一个,呃,筷子碗去吃饭,对吧?这些叫做控制。那对于我们代码来说,他这个控制是什么呢?那就是来操作我们版本的,比如我可以让你这个版本呢是一点零,可以呢是 二点零,对吧?那这个呢就叫做控制,所以呢它整体就叫做一个版本控制工具,那对于我们的二呢?第二个问题呢,就是我们为什么要使用这个 get 呢?对吧?那这个 get 呢?它起到了一个什么样的作用呢?这是我们要明白的第二个点,首先呢我们 get 它呢在项目 开发中起到的作用呢?比如说哈,我们现在拿这儿,我这儿呢是一个我们国内的一个 get, 也就是马云,那比如说我这儿呢,我自己的一个仓库哈,随便找一个, 那这儿呢?比如说有仓库,对吧?那你看,嗯,我找一个有提交的哈,这儿,比如说这里,对吧?有提交,一个月前,那这个呢?就相当于我们的一个版本号,对吧?那它上面呢?有我们所有的代码, 对吧?这不是我们代码内容吗?所以他这里起到的第一个作用呢?就是我们的一个代码管理。你想,比如说,呃,我们在日常开发过程中,那比如说我们开发了一个版本,一点零的版本,对吧?那我们不可能把它去存到一个网盘中,或者是什么地方,对吧? 那你这个呢就会去占用一个地儿的空间,那比如说呢,你又开发了个版本,那你再把它存起来,这样也容易乱哈,那我们的 get 呢?比如说这儿是 get, 对 吧?那这儿呢?比如说哈,我们这儿有,而且呢有好几个人,对吧?这是 a 人,这是 b, 然后呢它俩呢 都来开发,对不对?他俩都来开发你这个项目,那你不能他本地存一份,他本地存一份,对吧?真的很麻烦,所以我们要做的呢是哎,他也提交到这个仓库中去, 他呢也提交到这个仓库中去,那这呢就是我们的 get 地址了,那他呢就对我们的代码呢进行一个管理,对吧?所以呢他第一个作用呢就是我们的一个代码管理, 然后呢那他第二个功能就是什么?我们这可以进行项目的克隆和下载,对吧?那我们比如说你刚进到一个公司中去,那他让你开发,或者说让你修改一个他现有呃项目的一个需求,对吧?那你就可以从他的一个 呃仓库里头把代码呢给他下载下来,就是这不是我们代码都存在这了吗?对吧?那存在这里之后呢,我们就可以进行一个下载, 那下载比如说你下载完之后呢,你更新了,修改了,对吧?你还要把它去上传到这里,然后呢还有一个就是版本的控制,就是我们刚刚所一上来搜索到了他的控制工具吗?对吧?那他的控制是指什么呢?比如哈,我找一个 这个仓库,比如说那他这里的提交,你看哈有很多,对吧?而且代码也有很多,然后呢分支也有很多,对不对?然后包括我看一下他的一个提交, 那你看他这呢有这么多人进行提交过,对吧?然后呢比如他每一个都有一个版本号, 来看一下哈, 那你看,对吧?他每一个都有对应的一个版本都,这这就是他对应那个版本号,那比如说你想要把他,比如说这个版本,你觉得这的那代码, 呃,我不想要这代码了,对吧?我想回退到这个位置,那也是没有问题的,所以呢就是对于他版本的一个控制,我可以即使是当前的最新的版本,我也可以给他弄到。呃,就是之前一点的版本中去或者说更前面的一种版本,因为我们每次提交呢,他都有一个记录,对吧? 所以呢我们就可以通过这个版本号呢进行一些的操作。 ok, 那 这个呢就是我们的版本控制,那这里呢就比如有回退等内容。 ok, 那 这今这节课呢就先给大家讲这些,那第一个呢,我们要知道 get 呢是一个什么内东西,对吧?那 get 呢?是一个,呃 版本控制工具,对吧?那这个版本呢,说的是我们的代码提交的一个版本号,那控制呢?就是说它可以进行一系列的操作,那 项目开发中起到的作用呢?就是我们这里可以呢给他进行一个代码的管理,第一个,对吧?然后还可以进行上传下载以及版本的一个控制。那我们进了公司之后,我们一般都会是多人去开发,对吧?像我画的这个,比如说张三李四,那他俩呢? 他俩的开发之后的内容呢?就是代码呢?都要提交到仓库中,进行一个代码的管理,对吧?那有了记录之后,每次提交都是一个版本号,我们可以回退啊,或者说是到我们某一个版本中,然后去进行一个查看代码啊,或者是什么内容, 这样呢也会节省我们本地存储的一个空间,然后呢也不容易乱,因为呢他会有时间,对吧?那这里他还会有时间,然后有地点, 不是有那个谁,对吧?是谁提交的,然后在什么时间去提交的?还有你的一个备注,那就像这种情况呢,也避免了我们的一些误操作,比如,呃,我们在线上那个版本出问题了,对吧?那我们可以立即回退到下上一个版本之前的版本,因为这里是有记录的吗? 然后呢还有就是说,比如说有个人,对吧?他弄错了,然后他删除了一些不必要的东西,那我们就能找到,哎,这个东西是谁改的,对吧?就可以进行一个很好的追溯。 ok, 那 这个呢,就是我们 get 了解的一个基本的内容, 那下节课呢?我们也可以试着去尝试的安装一下 get, 以及我们去下载一下呃,这个代码, ok, 那 我们这节课呢就给大家把内容分享到这里。

大家好,这个视频我们来聊聊 h t t p 安全 h t t p 以及 s s l h t t p 是 hypertext transfer protocol 的 缩写,也就是抄文本传输协议。它可以说是目前 世界上使用最广泛的协议之一。 http 主要用于在互联网上访问网页,当你在浏览器中输入一个网址,比如 google 点 com 时,通常会看到浏览器在地址前自动补上 http 冒号。斜杠斜杠 这表示你现在是通过 http 协议来获取网页内容的。在标准 http 协议中,所有数据都是以铭文形式传输的。也就是说,你的计算机与 web 服务器之间 交换的所有信息,包括你在网站上输入的任何文本,都会直接通过公共互联网进行传输。由于这些信息是以明文形式传输的,任何想获取它的人,比如黑客都有可能对其进行窃取。当然,在一般情况下,这未必是一个大问题。 比如你只是浏览普通网页,没有输入密码、信用卡等敏感信息时,风险相对较低。但一旦你在网页中填写了个人敏感数据,例如姓名、地址、电话号码、密码或是信用卡信息, 这些敏感数据就会从你的计算机出发,经过公共互联网,最终传输到对应的 web 服务器。在这个传输过程中,你的数据实际上是暴露在风险之中的,因为互联网链路上的任意一个环节都可能被黑客监听,从而截获正在传输的信息。 也就是说,当这些个人数据在网络中流动时,攻击者完全有机会将其窃取下来,比如姓名、电话号码、地址,甚至是信用卡号等敏感内容,从安全角度看,这显然是一个严重的问题。这就是 h t t p s。 出现的原因。 h t t p s 是 secure hypertext transfer protocol 的 缩写,也就是安全超文本传输协议。它可以理解为带有安全能力的 h t t p。 h t p s 会对通过 h t t p 传输的数据进行加密处理, 从而确保计算机和服务器之间在互联网中传输的数据是安全的。经过加密后,这些数据会被转换为无法被直接获取的数据,是安全的。经过加密后,这些数据会被转换为无法被直接读取的内容。它的实现方式 是通过加密算法对正在传输的数据进行扰乱和加密。例如,当你访问一个需要输入个人信息的网站时,比如填写密码或信用卡号,你就能看到 网址中的 h t t p 后面会多出一个 s。 这个 s 表示当前使用的是安全超文本传输协议,也就是 h t p s。 它说明这是一个安全的网站,数据在传输过程中会受到保护。 除了网址中会多出这个 s 之外,很多浏览器还会在地址栏显示一个小锁图标,用来标识当前连接。正在使用安全超文本传输协议 h t t p s。 在 使用安全 h t t p 的 情况下,所有数据, 包括你输入的任何内容,都不会再以铭文形式发送。相反,这些数据在传输时会被加密为无法直接读取的形式。因此,即使黑客尝试窃取你的信息,他所获取到的也只是一段无法理解的数据。由于这些数据已经经过加密处理, 攻击者无法轻易破解并还原出原始内容。安全 h t t p 通常通过两类安全协议中的一种来保护数据,其中之一就是 ssl。 ssl 是 secure sockets layer 的 缩写,也就是安全套接字层。它是一种用于保障安全 h t t p。 通信的协议。 ssl 的 基本工作流程大致是这样的,当一台计算机尝试连接到一个起用了 ssl 的 网站时,计算机上的浏览器会首先要求该网站证明自身的身份,随后 web 服务器会将自己的 ssl 证书副本 发送给这台计算机。 s s l。 证书是一种小型数字证书,用于验证某个网站的身份。简单来说,它的作用就是让你的计算机知道你正在访问的网站是可信的。接下来, 浏览器会检查自己是否信任这张证书,如果证书被信任,它就会向 web 服务器发送一条确认消息,随后 web 服务器也会返回相应的确认信息,这样 s s l。 绘画就可以继续建立。完成这些步骤之后, 你的计算机与 web 服务器之间就可以开始进行加密数据的交换。安全 http 还可以基于另一种安全协议来实现,这种协议叫做 tls。 tls 是 transport layer security 的 缩写,也就是传输层安全协议。 它是目前行业中更新也更主流的加密协议标准,可以看作是 ssl 的 后继版本,并在其基础上发展而来。和 ssl 一 样, tos 同样具备对客户端和服务器进行身份认证的能力,同时还能对传输的数据进行加密。 还需要指出的是,现在很多网站都会默认使用安全 http, 也就是 http 不 管是否真的会传输敏感数据,这在很大程度上和 google 有 关。 因为如果网站没有使用 ssl 保护, google 现在会将其标记为不安全。除此之外, 如果一个网站没有起用 ssl 保护, google 还会在搜索排名中对它产生不利影响。所以现在你访问大多数主流网站时,都会发现它们使用的是安全 http, 而不是普通 http。 这个视频就到这里,欢迎在评论区留下你对本期视频的反馈,我们下个视频再见。最后,如果您觉得视频对您有帮助,欢迎关注和分享,以获取更多计算机硬核知识。

作为一名牵手式软件工程师,我想聊聊版本管理这事。说实话,入职前我完全没有代码管理的概念,自己写代码 就是本地,改来改去,经常搞混版本。工作之后才发现,版本管理简直是必修课,它不仅能帮你规范储存代码,控制权限,更重要的是当出现问题的时候,可以快速回收到任意历史版本,精准定位问题。 现在绝大多数公司使用的代码管理工具就是 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 命令是什么?欢迎在评论区留言讨论。

嗨,如果你是 web coding 的 初学者,或者是像我一样半路出家的人,那我非常建议你可以接下来看一下我这个分享。我觉得是在 web coding 当中一个非常重要的一件事情,就是 get。 我 起先呢去做了一些什么小程序啊,网站啊等等这些东西的话,其实我是完全不知道有 get 这个存 在的,那那个时候我做的东西呢,就是乱七八糟的存到这里,存到那里,最后我都找不到,我想改,我也不知道要改什么。而 而且呢,我发现如果他给我改成了 a 版,那我就再做不了 b 版,就是我完全的那个原始状态,已经完全没有了,但是有了 get 就 完全可以做到这一点。 那我刚开始接触到 get 的 这个点呢,其实也挺魔幻的,就是我去问说,哎,我的东西怎么乱七八糟的,有没有什么方法或者是 ai 路径能帮我整理一下呢?结果就有一个大神就说,那你就用 get 啊,我当时不理解,我以为是 get, 我说是 get up 吗?他说不是,但其实 get 就是 一个很简单的应用程序而已。那我用一个我非常喜欢的一个例子来给大家分享一下,就是平行宇宙。这个平行宇宙呢,我们可以看得到故事的起点呀,主角出现呀,发现魔法, 最后我们要延伸到下一个平行宇宙了,对不对?我们这个就相当于是我们要在这个项目,比如说我们做了一半,那我们要继续往下做,那我们就开了一个项目 a, 那 如果觉得不行的话呢,我们可能还会再开一个 a 项目 b, 那 我们如果说是觉得,哎,这个项目做的还不错,那我们就在这里开始去写一个新的剧情,如果我们觉得说是,哎,这个项目我觉得又不想要了,那我还想回到原先那一版怎么办呢?我们再回到初十, 然后再去创建一个平行宇宙就可以了。那嗯,我们在这个里面呢,也一样可以继续这样去写剧本。 那如果说我现在想要回到这一个剧本当中的什么节点 b 啊,或者节点 c 啊,这样的我们也完全可以切换回去,这样我们就可以在每一个节点当中去切换选择我们想要的某一个节点。 那平行宇宙呢?还有一个特点就是说如果你想要回到某一个节点的话,你是完全可以的, 它是存在的。也就是说呢,比如说你在做到了这个啊,橡皮的时候呢,这个红色节点的时候,你觉得说,哎, 我还是不想要这一版,我还是觉得刚开始那个黄色那一版更好一点。 ok, 那 你还可以切换回去。而这个呢,我觉得就是 get 的 精华所在,现在有了 ai 呢,我们完全可以在 ai 当中的对话框当中去实现它。比如说我现在把这个文件夹说帮我 get 出使画, ok, 我 们可以看得到呢,你看直接帮你完成 get in it。 如果我接下来要在这个文件夹当中去做一些其他的东西呢,我就每一次就做一下 get 提交就可以了,那如果不满意的话呢,我就还可以让它再切换到上一版就完全可以了。 我之前呢,在不理解的时候,我会觉得,哇,这是一个多么高难度的东西啊,觉得是啊,就是程序员才能掌握的东西,但其实现在有了 ai, 我 们也完完全全可以感受到这一套逻辑的所在。那我是加玛。加玛,我们下期再见,拜拜。

大多数个人开发者,我们的代码都放在马云上面,控中小企业的话也放在马云上面,很少去打进自己的仓库。我们创建项目的时候,通常是在登录马云,然后在上面创建仓库,然后再在本地电脑上面 文件夹,然后去关联仓库,然后再去推送代码。如果说你不熟悉的,你会根据 马云上面那个提示,马云上面的提示命令,然后你去执行,有时候可你操作不当,还推送不上去报这样那样的错误。为了解决这个痛点,同时我自己也是为了提高效率,然后我自己写了一个脚本, 比如说我这里建了建了个文件夹,叫 abc, 在 我的电脑上面,然后我就执行一个脚本,就是说我自动,我自自动创建 abc, 就是 以当前文件夹作为那个仓库的名字,自动创建这个仓库, 然后自动推送代码。我们可能说原来可能要搞好几分钟,可能你才把那个代码推上去,那我现在的话,我可能说就是一一件就几秒钟的事就完完成这个事情了。 那它的原理是什么呢?是因为我们平时的话,我们可以说,比如 i d, e, a 啊,提交代码这些,我们可以说是用的用户名密码,或者说是用的它的私,私有的 k, 虽然我们在马云上面可以创建一个 token, 然后创建 token 之后,它 token 可以 配置,也就是这个 token 的 权限啊,然后我们把权限这些配置好,从我们的 s h 脚本里面, s h 脚本里面,然后你就去 用到这个 token 去连接那个马云的仓库,然后它里面有 a p i, 相当于你直接调它的 a p i, 然后就完成了,就自动创建、自动推送 这些流程。如果说我们是 s h 脚本的话,相当于你本地还要装一个什么呀?装个 get 客户端是吗?这样的话它才有 linux 的 环境,然后这样的话我们就 ok 了。

astropica 的 opus、 sony 这些大模型其实并不会帮你写代码、改 ppt 和读网页,它会的其实只有一件事情,你输入一段文字,它给你输出一段文字。那它是怎么拥有前面说的那些能力的呢?答案叫 tool use。 工具使用 大模型从来不自己执行任何东西,他只会吐出一段结构化的输出。意思是我想用这个工具,然后参数你填这些,真正去做的是你电脑上的 clock code, 他 把命令跑完,然后再把结果传回给大模型。 cloud code 命令行本质上就是替大模型干活的小助理。我们以 bash 工具为例来演示 tool use, 这里我新建了一个 git 项目,改了两个文件,然后又新添加了一个文件,然后还是用上次介绍的 cloud tab 来拦截 cloud code 的 api 调用,然后, 然后我们让 cloud 看一下 git 有 什么改动, 哦,你看这里 color code 调用了 bash 工具来执行刚才的 git status 哦,然后返回了刚才我们看到的结果,对不对? ok, 我 们退出,打开第一次拦截的请求,然后可以看到我们给大模型发送的消息是 git 有 什么改动,对不对?然后我们看服务器回音的 s a c e 事件,然后这里重点看 content block, 这里 type 是 tool use, 这是工具调用的固定标识。还记得上期视频里我们给发送的消息是 hello, 对 不对?然后服务器回应了 hello, 你 想要干什么,对不对?然后这里的 content block 的 type 是 text, 所以看到工具调用,这里的 type 不 一样了,对吧? id 是 拓 u 零一开头的一串编号,这是这次工具调用的唯一编号,然后 name 是 bash, 告诉客户端要调哪个工具,然后下面这一堆 tail 都是给出的 bash 工具。这次调用的参数, 我们直接看响应里面帮我们组装好的完整参数就行了。这里 command 调用的是 git status, 然后 description 写的是 show git status and diff, 之后一个值得关注的字段在后面。 这里 stop reason 等于 tour use, 什么意思呢?就有点像 http 握手协议一样的。 此时的状态是大模型已经把指令给到客户端了,等你回话,那么现在视角就回到了客户端这边,打开第二次拦截的请求。 clark cold 在 收到 tool use 之后做了两件事情,第一次他把 command 里的命令拿出来,在终端里真的执行了 get status, 你 看这里是不是刚才在命令行里看到了 get status 结果对不对?然后这里其实他还顺带执行了 get def 的。 然后第二个他把命令的输出打包成了一个 to use 的 block, 我 们看到这里 对不对,然后塞进了第二次请求的 messages 里发回去。我们看这个 to use, 它的 to use 的 id 字段 就是上一步的这个 id, 一 字不差,这是托 use 协议规定的。通过这个 id 配对模型才知道这是哪一次工具调用的结果。 然后 content 的 字段就是刚才这个 git status 原文输出。整个执行过程大模型是一无所知的,他只看到了一个文本结果,然后第二次的请求发出去之后响应来了, content block 里只有 text 一 块, 然后这里 stop reason 等于 and turn。 握手协议完成了 call code 用自然语言总结了改动,在 may 分 支 read me 和 hello p y 修改了,然后还有未跟踪的文件,一来一回循环关闭。刚才演示的就是 tool use 的 全部过程。第一次请求把你要做的事情连同系统提示词里的 tools 列表发过去,模型读完了,会输出一个 tool use, 说要调 bash, 然后参数填 key status。 客户端拿到指令后真的去跑,然后把输出包成一个 tool result, 塞回第二次请求的 messages 里面。大模型拿到工具执行的结果,然后会用人话告诉你改了哪些文件,然后以 end turn 结束。 这就是客户端工具的原理。大模型发指令,你的电脑执行叫客户端工具 client execute tool, 比如 bash 执行命令 edit 的 编辑文件命令 另一类执行,它不在你的电脑上,而是在 asprop 的 服务器上跑,这种叫服务器工具 server executed, 比如说网络搜索 web search 工具,网页抓取 web fetch 工具就属于这一种,你的客户端只拿到结果。 今天我们介绍的是客户端工具在你的电脑上跑的那一类。下一期我们介绍一下服务器端工具是怎么工作的。

想搭建一个自己的邮箱营销,试试冰凌?没有,这是一款开源邮件服务器和邮件营销平台。那么废话不多说,来看看如何在 u 泵吐下安装并使用。通过 s s h 连接上服务器,输入这串命令,耐心等待它安装。 复制登录入口和密码,打开浏览器,点击高级点击,继续前往,输入刚刚复制的账号密码, 点击右上角把语言改成中文, 点击左侧域名,点添加域名,输入域名后点确认,点击 d n s 记录,根据说明给域名配置 d n s, 然后点击验证。 点击左侧的邮箱,可以看到这里已经自带了一些接下来复制要登录的邮箱,按要求在浏览器登录, 现在你就有了一个属于你自己的邮箱。接下来介绍一下邮件模板的功能,点击添加模板并把 html 粘贴进去, 我们可以发送测试邮件试一下,可以看到是能收到的。这个软件还有更多功能可以探索,如有问题欢迎在评论区指正,如果这期视频能帮助到您,请麻烦点个三连和关注,谢谢了!

那我们上节课呢是把这个开源的项目呢进行一个下载,下载到了我们桌面上,那像这种开源的项目呢,它肯定是, 呃,只允许你去下载,但是呢是不允许你进行一个提交的,就是说它提交的呢时候呢,你会报错,所以呢这个时候呢,我们怎么去给它进行一个修改呢?就像这种项目,对吧?那我们一般从仓库里拉了一个项目之后,我们肯定会进行修改, 修改了之后呢,比如说我这新建了一个什么文件夹,对吧?然后呢像这种开源项目,你是提交的话是提交不上去的,所以呢我们这节课呢就来看一下,就这种情况呢,我们就需要去,呃,在我们的我这呢就直接用这个马云了,然后呢现在呢,我是登录了一个 账号,对吧?那在这个马云的平台上,那你我先退出登录哈,那你有账号的呢,就进行一个登录,那没有账号的呢,你这就可以点击一个注册,对吧?那你注册完之后呢,然后你再登录, 你再在这进行一个登录。那登录之后呢,就像我现在哈,我先登录一下我这个账号,因为我现在呢是注册 过的了,所以我直接登录即可哈,那你看我登录之后呢,就进到了这样的一个页面中,那进到这个页面中之后呢,我们就这有仓库吗?对吧?那我这呢现在是有两个仓库,你不用管,好吧?然后你在这他有个新建,也就是创建仓仓库, 那我们点击这个新建,你可以给你的仓库起一个名称,那比如说我就叫 test, 嗯, demo, 然后呢这路径它就自动有了。你这介绍呢,比如说我们就是测试提交,然后这我们你可以自己根据你的呃需求去选择。 开源呢,就是对所有人都是可见的,那私有呢?就是说仅对你的仓库成员可见,那仓库成员呢?你可以进行一个添加,或者是 呃修改,那我们接着去点击一个出使化仓库,然后我们这儿选择 java script, 也就是 js 语言,后边呢我们就不用管了,那这儿呢,我们要点击一下设计模设置模板,给它勾选上,把 redmi 文件呢给它勾选上。那这样呢,我们创建完之后,它就有一个 redmi 的 文件,那我点击创建, ok, 那 你看现在呢,就是个创建成功之后的这个仓库就有了,那这呢就有了我们刚勾选的一个 redmi 的 文件,对吧?那我在这可以呢,就把我这个仓库呢给它去克隆下来,那我进到我的一个桌面上,哈, 那我同样我们上节课讲了是 git clone, 对 吧?然后呢给它进行一个克隆,现在呢我的桌面上它就有了我的这个文件,叫做 test demo, 对 吧?那我们把这个文件打开,打开之后呢?比如说我们,比如说我这儿新建了个文件夹, 呃叫一二三,好吧,这个就叫做我们添加内容了,你不要管它里头是否是空,那添加了之后呢,我们就要把它去提交到我们的远程仓库上,对吧?那这个时候我们先需要去全局地进行一个它的配置,那 gullible 我们去配置一个你的 user name 给 get, 那 我这的 user name 呢?我就是,呃,这里其实无所谓,你叫根据你这的一个 user name 去叫就好了,那我这呢就是叉 a i 杠一杠零。 然后呢我再去配置一个我的公共的邮箱,那就是 email, 然后呢我就用我自己的邮箱, ok, 那 现在配置成功之后呢,我们就可以去进行一个代码的提交,那这个时候呢,有小伙伴说诶,老师我还需要去弄一个 s s h 公告吗? 这个也是可以的哈,那接着呢,他这个是干什么的?就是这个 s s 是 公要是干什么的呢?他其实就是把我们本地的仓库和我们这个远程的仓库呢给他进行一个连接,也就是连接起来,那他这个要怎么办呢?就是怎么去深沉呢?对不?然后呢我们来看一下哈,他这呢在 算了,我直接去打吧,在他的这个里面他是有给我们提供一个 help, 这个一会呢也把地址给发给大家,你看这呢,它详细的教了你如何去生成和添加这个 s s 个公要,对吧? 那 get 呢?它也提供了基于这个 s s 协议呢的 get 服务,那在使用它访问仓库前呢,需要先配置好你这个账户的公要,那我们可以通过这个命令呢来进行一个生成。 那对于我呃的电脑来说,那我呢就是直接打开我这个终端即可哈,那叉叉点 c o m 呢?你可以写成你自己的一个呃,这个邮箱,好吧,那我呢就还写成我自己的一个幺六三的邮箱 呦, 那这个时候你看它就会有这个内容,我们进行回车 输入密码哈,然后呢他让我再次输入密码, 我看一下哈,是不是我们这个 好像是我的,稍等我给他清一下,好像是我的这个,嗯,密码的错误的问题哈。 回车,然后他让我去输入,呃,哦,对,保存这个 k, 然后呢?你看, 呃直接回车哈,到这一步的时候我们去直接回车就好了。他其实问你的意思呢?就是说你,呃选择一下你是否保保存这个 k 到这个文件夹下哈,那 overwrite 呢?就是你只呃去可以允许写,对吧?那我们去回车,然后呢?这个我们再进行回车,然后再进行回车。 ok, 这个时候就经常呃它就深沉了。 那生成之后呢,我们再通过,你看他说按照提示三次回车即可生成,对吧?生成之后呢,我们可以通过这个,然后来进行查看我们生成的这个密钥的文件,那你看这就有一个 s s h 开头的这一堆的文字,对吧?那我们就可以把这样的一些内容呢给它进行一个复制,对吧?那这呢它就是我们的一个公钥, 那我们在这个它给它进行一个复制,然后复制之后呢到我们的仓库里头,它有一个我的仓库, 然后你来找,按他这说的这个你看通过仓库主页,他有一个公要管理,你看管理部署公要管理添加公要,然后去给他找到就好了。那仓库主页我们有一个管理, 我们来找一下哈仓库, 然后这有一个,但是我这个是在这哈,它就有一个 s s s h 公要我们点击,点击呢,那你可以给它添加一个标题,然后把你的公要给它粘贴到这里即可, 然后包括这,你看它也有给你去一个快快速入口说,呃,如何去快速生成链接,对吧?那它这呢也会有给你一个提示,说你这个东西呢可以是 s s h r a 这个东西开头,对吧? 那你看我们生成的这个是不是 s s h, 然后 e d 什么什么什么,对吧?二五五幺九开头, 那你看他这是不是有这个 s s h e d 二五五幺九,对吧?那这呢就是我们的公要,然后呢他的标题,然后这就我就是个邮箱,我就不改了。这个标题呢,你可以看自己的需求去进行修改,然后我去进行一个添加,然后他让你输入一个你的账号密码, 输入账号密码我们去验证,验证成功之后呢,你看这个时候它这就哎,您当前的 s s h 供药数呢,就有一个了,对吧?那就是这, 那现在供药有了之后呢,我们就把本地仓库和我们的一个呃远程仓库呢给它进行了一个连接,那我们现在呢就进到我们刚刚去生成的那个 test demo 的 页面中,那我们去 get add 点儿, 这个时候其实他就上传到了中转转中转站中,那你需要注意的呢,是我后边结束是一个点,那他中间呢?都是有一个空格的,对吧?那我们上传到中转站之后呢,我们先要把它放到本地的仓库中去, 我们使用的命令呢是 get commit 杠 m, 那 这引号中的内容呢?就是你给你的代码此次提交的内容呢,进行一个备注,比如说我这我就备注一个新建了个文件夹,对吧? 那我这就是新建了个文件夹, ok, 那你看他说,但是呢他说我们的工作区是空的,对吧?那我们就要去看一看了,我们把我们的这个 demo 呢给它进行打开,是这个, 那我们现在有一个页面,对吧?他说我们里边的内容呢是空的,那我们在这呢,我们就新建一个,比如说一点 html, 对 吧?那我们里边就稍微给它写一个内容 h t m l, 我 们稍微给它写一个内容,那我们这儿呢,就比如说,呃,只写一个 header 好 了,我们这就 ok 了。然后呢我们再一次给它进行提交,那我们就还是给它 add 点,然后呢这个时候它的内容你看就到了缓存里头了,那也就是我们的中转站中,那这个时候我们去 get commit 杠 m, 然后我还叫新 新添加的测试 html, 对 吧? 那 ok, 这个时候你看这儿的内容呢,它就没了,我们来刷新一下,你看它就没了,它呢这个时候就到了我们本地的一个仓库中,那到了本地仓库中之后,我们使用 get push 把它提交到我们关联的远程的马云的仓库中, ok, 你 看这个时候我们再来看我们的仓库中的代码,哈,那这是我们的刚新建仓库,对吧?新建的时候我们是只有这两个文件的,对吧?那接着你会发现这多了一个文件夹,叫一二三, 并且一二三中多了一个文件叫一点 html, 对 吧? ok, 那 这个呢就是我们在本地代码就是添加了内容之后呢,把它提交到了我们的远程仓库中。那我们这一块呢,也同样给大家进行一个呃,写笔记。首先呢第一个我们去做了一个 get 局的一个配置,对吧? get 局的配置,那我们在局的配置中呢,去给它配置了一个呃,你的 user 点 name, 对 吧?你要注意你这 user 点 name 写啥?那你这儿提交之后呢?你你看, 对吧?这的名字就是啥,那我这就叫叉叉杠, ai 杠一杠零,对吧?所以呢,我这的名称也是这个,所以你这需要注意哈,这就是你提交时的名称, 那接着呢,我们就是配置一个名字,然后我们还需要配置一个邮箱,那就是 email 地址,那这个呢,就是你的邮箱地址了, 然后全局配置之后呢,我们是要把远程仓库和本地仓库进行连接, 那我们是通过这个 s s h 工要进行连接的, 那接着我们就讲了如何去生成这个 ssh 功效,对吧?那这呢,给大家提供了一个参考的网址,也是马云这提供给我们的。这, 那这呢,你需要注意的是呢,在这个网址中生成的过程中呢,我们却运行一个, 那深沉的话,在终端运行,记得我们刚的步骤吧,我们是在终端中运行的这个, 这个内容,对吧?那这个引号中的内容呢?也是,这也是哈,你的邮箱地址, 你的邮箱地址,那在这个过程中,我们是,呃,回车,对吧?回车。 然后加上你其中有一个需要输出 y, 对 吧?就是是否可写那联是需要选择 y 的, 剩下一直回车即可哈。 呃,一直回车加上的选可 white 时 word 十选择 y 啊,别选择了,也是输入,对吧? word 十输入 y 即可。那第二个呢,就是生成成功之后,它就会出现我们刚刚的这一串的内容,对吧? 哎,这一串的东西就代表着你是,呃,生成成功了,这你看它也会有出来这一个公钥的地址了哈,那我们如何去获取呢?接着就是我们获取的一个命令,那我们是通过这种方式 就可以获取到我们的一个 s s h 了,对吧?那接着把它的内容呢?把内容复制, 复制到你 get 网站中的配置中,对吧?网站中 s s h 公要的配置中, 那这个呢,你就需要去找一找了,有的人呢?也许是因为他版本不同吗?对吧?那在仓库中你就能看到他这个入口,假如没有的话,哈,那你就去点个人主页,对吧?呃,不是在我的这里 点我的,我的这里呢,他是有,就是你可以去设置的内容,比如说,呃,我找一下啊,我的仓库, 我的仓库,然后点 上它,加的有点慢点企业这里呢?嗯,不对,不对,不对,不是点这个哈, 那这你看有个设置,对吧?进到我的设置的页面呢,这有一个 s s h 公要,那你点它进行一个添加就好了。那这个位置呢,也许你需要去找一找,因为版本不同呢,也许它更新的内容是不同的。 那配置完之后呢,我们就可以进行的一个代码的上传了,那首先是 get add 点儿,那这个操作呢?就是上传到我们的中转站中, 那 get commit 杠 m 这里呢?是你的提交备注,就是比如说我们刚刚说了有很多人会一起开发,对吧?那张三李四,那张三提交,你 提交,你在此次提交中修改了什么,你可以添加个备注,那我李四一看我就明白,哦,你此次题都改了啥了,对吧?那这个呢,是提交到我们本地的仓库,然后我们使用 gitpos 把本地仓库的内容提交到远程仓库, 那我们这样一个修改代码上传的内容呢就结束了,那这个呢就是我们今天的所有内容,首先我们讲了全区的进行一个配置,第一步,对吧?第二步呢就是建立远程仓库和本地仓库的一个链接,那 就是通过 ssh 公要,那首先我们又讲如何去生成一个公要,对吧?那在前边呢我们还讲了一个,在这个仓库中呢去创建仓库,对吧?然后 生成公告之后呢,我们就可以进行一个代码的上传了,那就是每一个步骤 get 它的点, get commit 杠 m 以及 get push 这三步。那其实呢之后我们要做的事情呢还有很多,刚说了有很多人一起开发,对吧?那开发的过程中呢,也许就会有一些冲突啊,或者是什么的内容,那 ok, 我 们下节课呢再接着继续去给大家进行一个分享。

这个视频呢,记录一下 cloud code 的 一个安装的全过程,主要有这个四个步骤啊,这先安装 node, 然后安装 git, 再安装 cc switch, 最后就是在 cloud code 里面配置这个大模型 安装 node。 我 们进入到这个网网站以后啊,我们就点击这里呢根据电脑的系统进行一个安装,那我呢是 windows, 所以 就下载 windows 版本 啊,这里我已经有了,我就不下了,等装好以后啊,安装过程是比较简,比较简单,然后装好以后就测试一下到底有没有装好呢?我们直接在这个 c m d 里面打入这个 node 杠啊, v 出现这个版本号就成功了。那么第二步就是进入到这个网站去安装这个 get 环境, 然后呢是根据这个,也是根据电脑的系统啊去装这个 windows 的 这个六四位的 啊,下载好以后我们安装,安装好以后,我们点开这个 git bash, 在 这个框里面也是输入这个呃 git 两条杠 vision, 然后有一这个反馈这个版本号的话,就说明已经安装成功了啊。接下去就是在我们的这个呃命令,命令窗口里面去安装这三条命令,这样就可以把这个 cloud code 就 安装好了。 好,这样就是可以把 cloud 的 功能安装好了,然后在这里我们输入 cloud, 然后这个界面出来,就说明已经已经安装成功了。好,接下去就是安装这个 cc switch, 我 们点击到这个网站,然后拉到最后面有一个叫 release 点过来,我们看到这个最新版本,然后也是拉到最后面,然后就是选择我们的 windows 操作这个版本, 把它下载下来,然后再进行进行安装。装好以后呢,我们就在这个 c c switch 里面去配置这个模型,那这里我已经配置好了这个归机流动的一个方案, 配置好以后我只要也是打开这个命令窗口,然后输入这个 cloud, 然后这里输入一个 hello 吧,然后 那这里就会反馈啊,已经说明已经连上了,已经成功了。那么我这里问他一下啊,你是什么模型? 我在轨迹流动里面给他配的是这个 deepsea v 四的 flash 模型。 好,接下去我就是再尝试一下,在那个 deepsea 官网里面获取这个 a p i 去配置这个 v 四 pro 这个模型,因为 pro 这个模模型在这个轨迹流流动里面是没有的,所以我们这里选到 deepsea, 然后呢这里就是输入到我们刚才申请到的这个 key, 然后这里它默认是也是没有这个 v 四的,那么我们需要点到这个,嗯,官网接口文档里面把这个 model 名称给它复制下来, 然后复制到这里面都给它复制成这个 deepsea v 四 pro, 那 这样的话就是配置好了,那我们再测试一下,进入到这个命令窗口, 然后你看到看,大家看到这这里面它底下这个模型,它已经是变成了这个 deepsea b 四 pro 模型,然后我我也是给它进行一个测试,然后这样通的。

每次提交代码只会写 fix 或 update, 你 的队友已经崩溃了。规范的 get 提交信息应该这样写,把你的代码改动告诉 cloud, 它帮你生成符合规范的提交信息,标题简洁,皱纹清晰, 还告诉你要不要拆成多个 commit, 队友看了直接夸你专业提示词放评论区直接拿去用评论区告诉我你最常写哪种。 let commit。

欢迎来到新一期的六十秒,掌握 linux 命令。今天啊,咱们要聊一个每个程序员都绕不开的神器, git。 你 想想看,不管是自己一个人写项目,还是跟一个团队合作,总会遇到这个问题吧?代码改来改去的,怎么才能不乱套,还能跟队友高效的配合呢? 没错,答案就是 git, 它就是为了解决这个问题而生的。简单点儿说, git 就是 现在开发界的专门用来管代码,搞协助的。 好,那咱们就直接来看看你每天都会用到的最核心的工作流程。其实很简单,它就是一个不断循环的过程。 整个过程啊,其实就这几步,先把代码拿下来,也就是克隆,然后把你自己的修改保存好,这叫添加和提交,接着分享给别人,也就是推送,最后再把别人的更新同步过来。记住这个循环,你就抓住 get 的 精髓了, ok, 万事开头难,但 git 的 开头很简单,所有写作的第一步,就是得在你自己的电脑上弄一份项目的完整 copy。 这时候你就要用到 git clone 这个命令,它会把远程服务器上整个项目。注意哦,是包括所有历史记录,完完整整地下载到你本地,这样你就可以开始干活了。好了,代码到手了,那你在自己电脑上改了东西怎么保存呢? 这里啊,是 git 一个特别核心的概念,它得分两步走。在动手之前,先给你介绍个好帮手, git status, 随时敲一下这个命令,你就能清楚地看到哪些文件被你改了,哪些是新加的,所有状态一目了然。当你改好了一些东西,你就得用 get add 来告诉 get, 嘿,这些改动是我这次要打包的。这个过程就特别像逛超市,把选好的东西先放进购物车, 这个购物车在 get 里就叫暂存区。这么做的好处是,你可以精确地控制每次要保存哪些内容。 接下来 getcommit, 就 好比是推着购物车去收银台结账,它会给购物车里所有的东西咔嚓拍一张快照,然后把这个快照永久的保存下来。当然,每次结账啊,你都得写个小纸条,也就是提交信息,告诉大家你这次到底买了些啥。 所以啊,这里就有一个特别好的习惯要养成,尽量让你的每一次提交都小而专注,一次只做一件事。为啥呢?因为这样一来,项目历史会非常干净,万一出错了,撤销起来也容易,你的队友看你的代码也会轻松很多。 好,当你在本地存了好几个这样的快照之后,总得让团队其他人也看到你的成果吧? 这时候就轮到 get push 出场了,他做的事情很简单,就是把你本地所有已经结过账的提交全都推送到远程服务器上。这里的 origin 一 般就是指远程仓库,而 master 或者 may 就是 主分支,这样你的代码就贡献出去了。 ok, 你 把你的工作分享出去了。那反过来怎么获得队友们的最新更新呢?这样整个斜座的轮子才能不停地转起来吗? 这里呢,有两个常用的命令, git fetch 和 git pull。 你 可以这么理解, fetch 只是帮你去看看远程仓库有啥新东西,然后把它们下载下来,但它不会动你自己的代码。 而 pull 呢,就比较直接了,它不仅会下载,还会立刻尝试把新代码跟你本地的公锁合并到一起。简单说, pull 就 等于 fetch, 再加一个 merge pull 更方便,但 fetch 能让你先检查再合并,更安全。 看,就是这么回事。克隆、添加、提交、推送,再加上同步更新,这一个循环跑下来,你就已经掌握了日常写作最核心的 get 工作流了。 记住,高效的团队写作就是从写好每一次清晰专注地提交开始的。好了,现在就去试试吧。

打破信息差?今天分享一个可以帮你找到热门项目,看懂技术趋势的网站。菜单栏点击仓库看现在最火的项目,这里筛选的是标清高,而且最近还在更新的项目,基本都是现在最有价值,也最跟得上技术趋势的。点进一个项目,可以看到现在大家都在用哪些工具, 哪些项目最火。菜单栏点击主题,看大家都在做什么方向,比如 ai 自动化、爬虫这些,你点进去就能看到这个方向下面有哪些热门项目,相当于帮你快速找到一个领域的热门玩法。点击语言,看哪种编程语言更火,比如 python, python script, 你 可以直接看到他们的项目数量和热度,判断现在学什么更有用。点进去可以看到相关项目,点击所有者,看大厂和厉害的人在做什么,比如 microsoft, google 这些,他们在做什么项目, 其实也代表未来的方向。重点来了,点击排名,包含最近高火起来的项目和最近涨得最快的项目,其实就是在帮你快速看懂技术趋势。 比如一个项目如果突然暴涨,那基本就是一个新的风口。最后一个点击洞察,可以看更详细的数据。说白了,这个网站帮你做了一件事,帮你把分散的信息整理好,不用你自己一个一个找关注,我每天帮你打破一个信息差。

我们直接凌晨骑手去 lvgr 的 官网下载源码,依旧搜索源码, download, zip 即可, 这也太慢了,我们去剑像云那边也能下载, 下载好了你们就会得到一个 lvgr。 九点五点, 接下来我们来创建一个工程,慢慢移植,依旧是上一批视频的芯片, f 四零七 v e t 六,这里我把芯片收藏了一下,就能很快找到了。 依旧配置时钟,配置下载模式、配置串口,创建名为 project 的 工程,这些博主就加速处理一下。 ok 啊,我们也是可以找到这个工程。 我们把下载下来的 l v g l 源码直接复制到工程文件夹内,可以看到文件的数量还挺多的,急速等待中。 好了之后,我们先来裁剪这个文件夹,把不要的东西去掉, 裁剪成这样就好, 然后我们删掉这两个文件夹, 这样可以方便我们待会不带脑子移植。 接下来我们给这个文件夹改个名字,就叫 lvgr 吧,这个名字可以让我们翻译的时候方便点。打开工程,点开小柜子,我们来创建一些分组, 具体什么分组要看我们要用到 l v g l 的 哪些文件,我们把这两个文件夹的文件夹路径贴起来,方便待会看。 创建一个 l v g l 杠 e z mpos 的 分组,用来放显示驱动和触摸驱动。 再创建一个 l v g l 杠 s r c, 先不用加入 demo 分 组,因为目前我们还没用到。然后我们创建一个 l v g l 分 组,用来放 l v 康粉这些配置头文件。 接下来就是 s r c 文件夹目录下所有文件夹的分组了, 我们一个一个创建, 为了节约大家的时间,这里也快进一下, 好像是搞好了,接下来我们来添加文件进去 lvgl 杠 examples 这组,我们找到 lvgl 对 应文件夹下的 examples 杠 porting, 把里面所有的点 c 文件以及子文件加点 c 文件都添加进去。 确认一下之后,我们继续点开小柜子, 在 s r c 分 组,我们加 s r c 路径下的点 c 文件,可以看到就一个 l v g l 阴影,其他的文件夹里面的文件我们在剩下的分组加入一个萝卜一个坑, 我们继续加 s r c 杠括号文件夹下所有的点 c 文件, 接下来是 s r c 杠。第二点可以看到这个文件夹下面有很多文件夹,没办法,我们只能一个一个的搜刮,把点 c 都找出来加入。 接下来的操作都类似,都是在对应的文件夹加入对应的点 c 内容,为了节约大家的时间,我这里做加速处理,如果大家想看元素视频,我会放到一个独立的分批 这里,博主一不小心把这个文件夹给拖去别的地方了,大家千万不要学。 ok, 总算是加完了。最后我们把 lvgl 出示文件夹下的配置,点 h 文件改个名字再添加进来, 这里给 lv com 填什么的改成 lv com。 接下来我们添加文件路径, 只需要添加四个路径便可,像博主这样就行,别忘了 s r c 路径。 然后我们把 lv comin 这个文件里面的红打开, 直接翻译看看, 好像有点不正常, 我的妈呀,怎么有二百多个错误, 大家遇到这种情况不要着急,很大概率是文件没有加好或者路径的问题,我们复制其中一个错误,然后借助神秘力量看看能不能解决。 神秘力量说缺少原文件,那我们就搜索一下原文件在哪里, 让我看看这个文件是不是存在。这不是有吗?那为什么报错?难道是没添加进去工程 看看这个路径下有没有这个文件? 哦,我知道了,原来 s r c 杠迷 c 这个分组都忘了加了,怪不得一下子二百多个报错呢,我们赶紧补一补, 补完了我们再来翻译一下, 太爽了,一个报错也没有了,如果你们一下子遗址过来一个报错也没有的,那可以说是非常的细心,非常厉害。接下来我们处理一下警告, 博主会出一个教程文档,文档里面有屏蔽警告的小代码,大家可以复制一下, 粘贴到这个位置。 ok, 我 们再翻译。 怎么还有一个警告让我看一下。 最后一行没有空行,随便给几个空行就好。 ok, 也是移植成功了, 接下来就是验证了,我们打开小柜子,把 l、 g l 的 一个官方 demo 拿过来跑一下,这个 demo 比较酷炫,但是对 flash 和 ram 都有要求,平常大家跑压力测试的 demo 就 好,或者直接写自己的代码。 ok, 加完了,我们这里还需要适配我们自己屏幕的显示驱动,这里博主的屏幕驱动都打包好了,可以直接使用 你们的显示驱动,需要根据你们自己的屏幕适配,这里这四个 l v g l 显示的驱动和输入驱动博主也适配好了,待会我教大家如何写这些文件,这里我们就先替换一下它们原本的文件。 ok, 为了方便编辑代码,我依旧选择用 vs code 编辑。 我们先看 lv 康粉这个文件,这其实没啥好改的,先把这里这个参数改成我们自己屏幕的参数,我的是 rgb 五六五,这里是 lvgl 可分配的 red, 按照情况来就好了。打开这个 lvgl 显示驱动文件,我们需要先自己定义屏幕的分辨率,然后 dsp 音 e 这个函数就放我们自己的屏幕初步化代码。这里有三个例子是刷屏缓冲区使用的方法,其中方法一是单缓冲区,方法二,三是双缓冲区,我们只能选择其中一个。 我选择第二种方法,因为 f 四零七这颗芯片的原理相对比较多,大家根据自己的自行选择便可。接下来是输入设备的驱动,我们可以看到这里的输入设备有很多种,类似鼠标、键盘什么的,我们这里选择触控设备就好,其他的都注视掉或者不要了, 然后按照需求填写好 your code 里面的内容,就可以把触摸驱动跑起来。这里就是触控设备注册初步化,不用动,这就是驱动文件的适配了,我们适配好之后,写一些代码验证一下。 首先我们要把自己的屏幕出使画的条件准备好,出使画, delete 出使画串口输出设备。这里就先在 main 点 c 添加头文件, 然后加上 lgl 的 出使画,如果没有触摸部分,可以不出使画触摸。然后把这个 demo 函数用上,我们用这个 demo 要在 lv com 里面把这个宏打开, 回到 main 点 c, 在 主循环里加上这个 l v g l 的 处理函数,并且延时一下, 最后在 it 点 c 的 system tick 中断,加上 l v g l 的 心跳和 free r t o s 一 样。 接下来我们回到 q 五, 别忘了把自己的驱动文件添加进去。 翻译通过之后,我们最后修改一下 dns 启动文件,因为我们目前是裸机跑 lvgr 对 战可能不够,这里加一下对 战翻译。下载 完成之后,我们来看看效果吧, 个人感觉勉勉强强吧,还有优化空间,博主另一个 l v g l 和 freer t o s 融合的工程跑出来的效果更 好。好了,这就是移植 l v g l 的 全部内容了,每一个坚持到这里的小伙伴都很厉害,这期视频到这里就结束了。

你有没有遇到过这种情况,就是你很多时候只想让 ai 去帮你改一个小功能,结果他一下子就改坏了,你再让他修呢,他又继续改了更多的东西。然后这个时候最崩溃的不是说项目坏了,而是你不知道说刚刚哪一版还是好的。 包括最近也有一些群友问我说,哎, fred, 我 项目做错了,我想回滚怎么办?其实这个问题我觉得几乎所有的做 web coding 的 人都会遇到,今天这一期呢,我就让给大家讲一个能让你吃后悔药的工具, get, ok, 大家好,我是 fred, 专注帮普通小白从零到一,学习 ai 和 web coding, 提升自己的工作和生活效率。 我们先大家不要把这个 get 啊,想成一个程序员要动用的东西啊,你可以把它理解成一个项目的存档系统,就像玩游戏一样,比如打 boss 之前需要先存个档对吧?打输了呢,不是回头再来,而是回到一个上一版还能继续玩的地方。 用 ai 也是一样,它不是说不能让 ai 改,而是每次大改之前都要有一个能回去的点。而 get 解决的就是这样的一个问题, 很多时候呢, ai 改项目不是一次就成,他可能先帮你改一大堆文件对吧?跑一下呢,发现有问题你再让他修, 另一个地方又坏了,改来改去,最后你可能自己都不知道到底哪个版本是对的,而地址的作用不是让你变成程序员,而是给 ai 的 协助加一份保险。 ai 到底改了什么,什么时候还能正常坏呢?还能不能回到上一个稳定的一个存档的地方? 所以说呢,我们这一期不用讲一些很命命令的大权,我们先分两段来看,第一段就是 get 到底在保存什么,第二段就是 web coding 的 时候,你怎么用自然语言让 ai 保存,包括试错,包括回滚,只要这两段你能听懂啊,你就能够安全很多很多。 而 git 呢,保存的不是一个普通的备份文件夹,它更像是给项目去拍了一张张照片,你每次觉得这个状态不错的时候,你就可以让 ai 帮你保存一次 git 这个动作叫 commit, 你 可以把它翻译成存档点,很多存档点连起来呢,就是项目的整体的时间线 啊。然后呢, git 最早也就是为了解决这种大型的软件项目里面很多人同时去修改,需要回看和合并的问题。今天我们用 ai 改项目,本质上也需要这个能力。 如果你是用 web coding 的 话,你不需要记住什么叫 git status, git add, git commit, 你 只需要用自然语言去沟通,比如说帮我保存当前的版本, ai 会帮你保存一个可以回去的存储点。再比如说,哎,这次改完了之后,能不能帮我去回滚呢?那 ai 会回到上一个正常的版本,正常真正需要的不是说你被命令,而是知道什么时候该保存,什么时候该回滚。 而另外一个专业词叫 branch, 大家中文可以理解为分支,这个词听起来很素技术对吧?你就把它想成一个草稿本,因为比如说 man 就是 你的正式的稿,而 ai test 就是 一个草稿本, 你只需要跟 ai 说帮我开一个草稿本,然后再改,它背后就可能帮你去建一个分支,你让 ai 做大改动的时候,最好在这种草稿本里面去试,改得不好呢,这种草稿本扔掉也不可惜,对吧? 我们之前有讲过说 gitlab 啊,那一期也非常的火啊,有十多万人看过。其实 gitlab 像项目的主页,那 git 跟 gitlab 到底怎么分工呢? 简单来说就是 git 是 在你的电脑里面去存储,而 gitlab, 尤其是你自己创建的 gitlab 的, 不管是开源的还是这种呃, private 的, 这种项目本质上是云。云端的这种项目页,你跟 ai 说帮我保存当前的版本,通常是在本地去留下存存存档点, 你说帮我同步到 gitlab, 那 才是把这些存档点放到云端的项目页。同步上去之后呢?即使你换电脑,你跟别人一起协助,让别人查看这个项目,都会方便很多。但 gitlab 很 常见,不代表它就是 git 本身。 所以说解释完这些概念呢,真正用起来就不会很复杂,你只需要固定一套 ai 的 写作口令,对吧?比如说刚刚也讲了,你准备让 ai 改个项目的时候就,哎,帮我保存当前版本, 如果我想要大改的时候,就先开一个草稿本再改。如果说我动了哪些文件你不知道,你问 ai 你 动了哪些文件, 然后如果改坏呢?就帮我回滚到上一个版本。所以说呢, git 能进入变化,但是并不是所有的东西都应该放进去,比如说你的 api key, 包括你真实的账号的配置,包括隐私的这种资料啊,都不要随意保存进 git 啊, 包括说一些大的这种视频啊,就也都没有必要。我可以给大家演示一下,就比如拿一个最最最简单的一个案例,比如说让它生成一个 c s v, 放一个 mock 的 数据,对吧?我们可以看到里面有一些 mock 的 数据,那这个时候我跟他说帮我本地 get 一下,他就能够完成完成初设的仓库。 然后比如说我让他把我的 ct 灯眼都改成成都,那他就会把这一栏全部改成成都啊,然后我再说帮我回滚上一页,他就回滚成原始那一页,所以说大家可以看到就是存储啊,保存和回滚就是这么简单。 那最后最后你只需要记住一句,就是 get 并不是为了炫技,而是让你敢让 ai 动手,它会进入你的每一步,去留下你的存档点,必要时让你能够回到正常的版本 啊,包括草稿,包括回滚。然后你后续做项目和做开发才会越来越放心,越来越安全。 ok, 我是 fred, 欢迎大家关注我们,下期会跟大家再去分享六个让小白进阶的。 excuse, 我 们下期再见!

欢迎来到博课学城,从这个课时开始,我们就进入到第五章的学习,第五章呢是关于 get 的 讲解的,那这一章的话是非常重要的,主要讲的就是用 get 来做这个版本的管理,那为什么要做这个版本的管理呢?你可以看一下这里面有个场景 啊,就是当你写好某些代码以后,那你可以针对某个版本进行回滚,这有什么好处呢?就是当这个 ai 它写的代码 你不太满意的时候,你可以让他撤销回来。如果没有做这个版本的管理啊,你一直让 ai 在 你的这个项目上不停的写,不停的写,那写到后续如果出了问题,那你想恢复就比较困难了,到时候你可能一个项目写了百分之九十九,最后还差百分之一的时候,整个项目 给你写乱了,那怎么办呢?你只有重写,不仅浪费了时间,还浪费了你的托管。所以说为什么这一张内容非常的重要啊,就是这个原因。那这个 get 呢,我在我们的官网还是有一些详细的课程,但是呢, 对于我们极速入门的同学来说啊,你们不需要详细的去了解这个 get 它具体怎么使用,你只需要能够把这个环境给配置好, 最终操作的话,你可以通过自然语言让 ai 去帮你操作。 ai 的 话,它对这些呃工具的使用是非常熟悉的啊,怎么去撤销,怎么去给你添加版本啊,怎么去对比,它都非常的熟悉啊,不需要你去详细的了解里面呃具体的使用, 但是有一点你要知道这个 get 他 到底是干嘛的,这就是我们这一张啊,对大家的一个要求,就最基本的要求就是你学完这一张,你要知道这个 get 是 干嘛的,我的代码应该托管到哪里?他具体有哪些分区啊?具体的操作流程是什么?那这一块你要搞清楚, 要不然的话,你到时候去提问,你都不知道怎么去提,那还是记我们的这个笔记。第一,什么是 get? 用一句话来解释,它就是一个版本控制管理工具, 有了这个 get 的 话,你就可以对你的代码进行版本控制啊,可以对你的项目代码进行版本控制。有了这个版本控制以后,我们写的代码才相对来说有点安全 啊,你可以试想一下,如果没有版本管理的话,你是怎么操作的?我举个简单例子啊,比如说你去写论文,或者说你帮你的老板啊,这个写一个 word 文档,来吧。举个例子,假如说啊一,就你的老板 让你写一个 word 文档,这个时候你写完了第一个版本,好,你写完第一个版本,写完第一个版本以后的话,你交给你的老板啊,你的老板说这个东西要改一改,在没有版本管理的情况下的话,你是怎么操作的呢? 你可能在原有的基础上你继续去操作一个,就在原文件的基础上,你继续修改啊, v 二版本啊,很多人可能可能会这么干,然后呢?拿过去以后,你的老板可能说你这个版本还要继续改哈,继续改,那这个时候你就改成 v 三了。 好,来吧,继续改,改了 n 多个版本以后,跟你老板说,还是改回第一个版本吧。这个时候你突然之间懵逼了, 之前的版本你没有保存,你告诉我你怎么改回第一个版本?那这就是你没有做版本管理的一个很大的坏处啊,就你不能够对你的版本做回退。如果你有了这个 get 版本控制的这种思维,那你写的这个代码,比如说你的老板让你写这个 word 的 时候,你写了一个版本,拿给他改,他说你继续去修改吧,那你就重新搞一个 v 二版本,你的 v 二版本的话,和这个 v 一 版本是同时存在的, 然后的话,他说好,你继续再修改吧,那我就再来一个版本,我复制一份,再来一个版本。最后你的老板说,好,我改回第一个版本吧,我把第一个版本直接复制给他就完事了,他要第二个版本,我也直接复制给他, 你想想这种方式是不是安全很多?所以说版本控制为什么重要啊?这就是我们强调的,让 ai 来写代码的时候, 它可能并不是完全可信的,有可能中途会给你改乱。那你一定要在它每次修改,每次做了某个功能,你确定以后啊,提交一个版本,以防它在下一个版本的时候给你改乱,改乱以后的话你还可以恢复, 这是最重要的原因。那我们 get 的 话就是一个这样子的软件啊,所以说本质上这个 get 呢? get 是 一个软件。 对啊, get 是 一个软件,那这个软件它的功能是干嘛呢?这个软件的功能就是帮你来做这个版本控制的,明白了没有啊?这就是什么是 get, 大家要先理解清楚。好,我们这个课时先说到这里,大家先来先理解一下啊。