粉丝1.4万获赞5.0万

当代码需要回退时,更多人的第一选择是使用 get reset, 点击 get reset 之后可以看到四个选项,这是 get reset 的四种模式, soft、 mixed、 hard, keep。 这期视频就来讲讲如何在 idea 中进行 get reset 操作才能最安全的进行代码回退。 要理解这四种模式,首先要理解一下 dc 运行过程中的几个不同的区域,在写代码的时候都是在工作目录中写的这块区域,英文名为 walking tree。 写完代码之后进行 get add 的操作,就可以把这些代码存入暂存区,这块区域的英文名为 index。 接着进行 commit, 就把代码放到了本地仓库,破取之后代码就来到了远程仓库。下面是一个例子, test get 文件提交了两次,第一次 提交写了一段文字,第二次提交又写了一段文字,接着我又往这个类中写了一段文字,单位提交。接着创建了一个新的文件,并通过 a 的命令加入到暂存区,此时工作目录和暂存区都有东西。 首先执行 soft 模式,回退到第一次提交,执行这个命令之后,害的指针会指向选择的这个提交,当前项目的文件是不会发生变化的。原来的这个第二次提交被放到了暂存区中,所以你可以看到这一次要抗病者的内容,多出了第二次的提交内容, 所以 soft 模式做的事情是不改变工作目录和暂存区,将被回退的提交放入暂存区。 接下来看看 mix 模式,我已经将代码恢复到了和刚刚一样的状态,执行 get reset mix, 可以看到 项目的文件依旧没有发生变化,只是暂存区空了,所有的变更包括第二次的提交内容都被移到了工作目录。 所以 max 做的事情是清空暂存区,将回退的变更和暂存区中的内容都放入工作目录。哈的是最好理解的,直接将黑的指针指向选中的提交,然后清空工作目录和暂存区,你可以看到所有的内容都没了。 最后是 keep, 这个命令不常用,目的是保留本地的变更,但会将已经提交的那些代码清空。 在这个例子中,第二次提交的内容已经不见了,但是本地的修改还在,所以 keep 的作用是保留本地的变更,清除被回退的提交记录。 不管用哪种模式,因为此时本地分支已经相比远程的分支落后了,需要通过 force push 才能将代码推送上去。最后对四种模式做个总结。以上就是本期视频的全部内容了,我是鱼仔,我们下期再见。

我们再来看一下这个第二个问题啊,就是如何解决我们这个冲突。解决冲突的话我们先看一下这个冲突是怎么发生的。比如说我们现在的话有一个远程的,当然就是在这个远程的话,大家就是把这个当做是一个人,就是一个张三条代码。好比如说这个张三的话 把第一行代码改了,就是两个人对同一行代码做了更改的话,就会产生冲突,就是他改了,你也改了,这时候的话,就比如说张三的话,这边的话张三然后一一好,这时候改成张三一一了,他就被我们提交了 好比如比如说现在这个李四的话不知道我们继续啊,就是在这面好,这个他还以为是这个,然后他不知道这边的话他他也改了。这边的话李四,比如 改的东西就是第一次好,然后把它改成二二了,好这首吗?然后他保存,然后改成嗯爱的的,然后把他也提交了 修改啊,修改了,修改之后他做了一下 gettypose 好,然后更新远程的一个代码,好,这时候的话大家可以看到就发生了我们这个冲突, 他说哪个文件发生冲突好了,我的他们就是看一下这个好,这边的话他就产生了这个冲突。大家可以看到 这个冲突的话就是说前面这一部分就是焊的,后面的这一部分的话就是你自己的一个修改隐私的一个修改,然后后面的这个抖号,后面的话就是说 是一个远程,你更新过来给他一个冲突,比如说我们现在的话解决冲突要么你就要这个理思性过来的,要么就要你自己的,我们首度解决一下,如果说两个都要的话,你就把中间这些东西全都删掉,然后把它保存。如果说只要一个的话,那你就比如说不想要 张三的话,你就把它删掉,然后把你的提交,如果两个都要的话就保留,然后改成我们看一下啊。好,这首话他说改了,我们给他提交一下吧,改成 app 解决冲突,然后的话贴这 pose, 我们 pose 一下,然后把东西提交到远程仓库。好,这边的话也 应该就改了。好,这时候还就要的意思,我们再给他铺试一下,应该是最新的。好,这时候的话冲突就已经解决了。我们再来说一下怎么样回退到指定的一个版本,比如说我们现在的话修改一个文件吧,就是这面再添加个都行。 嗯,贴啊一好,这时候我们把东西都已经提交了,给拆 add 吧, 这边只有随便选的东西, 然后的话这时候的话已经提交到本地仓库了,比如说我现在回推的话,用这个该车提高的车,尴尬肯定是回推不了的。我,我想回推到之前那个版本,怎么回推呢? 看一下啊,现在提交记录, 我们用这个面来看一下, 当前这个就是我们刚刚写的这个被褥,随便写的,就是当前的害的所在位置,就是最新的一个 一次提交的一个记录。好,我们回到上一个版本的话,我们就可以直接输入他或者是我这边也给大家写了,就是我们需要指定回到指定的版本的话,我们就可以跟一个 就是当写 ad 的一个名字,或者比如说你想回到这边这个提交记录的话,你就写他,比如说 get breathe santa, 然后的话 hadrd 把这个名, 然后把它跟上,然后就可以回到我们这个对应的一个就是提交的一个记录,比如说我们回头的他的话就直接输入他就可以了,一个杠杠,然后大家可以看到现在的话就回到这个版本了, 我们看一下啊,就是说他现在的话已经大家看啊,就是之前这个风质指向的话就是备注是 ss 这个,但是现在的话他说已经更新到这个哈喽沃的,就是更新了哈喽沃的这个版本之前了。好,那那我们怎么样回去呢?就是我 这首的话,大家可以看到就是之前我们这个提交的这个季度已经没有了,我们怎么回到之前那个版本呢?我们这边的话给他给我们提供了一个,就是我们可以用 refer 这个的话就可以看我们这个提交的就是我们执行的一些命 你的一个记录。好,这时候大家可以看到,就可以看到我们这边执行的所有命令,我们做哪些提交原始的是什么啊之类的,都会有这个分支的一个版本号,我们只需要把这个版本号说一下就可以了。 比如说我们之前的话那个版本的话应该是多少了?应应该我们知道的话,就是如果说没有关屏幕的话,我们就可以直接输入他就可以了,如果说我们关了屏幕的话,我们就在这边找一下就可以了, 我们就在这边的话就可以找到他的一个就是之前的一个版本的一个季度,我们还记得就是他这个,这一次提交的一个季度就是 ss, 然后对应的版本号就是他不是说我们没有了就可以用这个命令,然后 get 有钱财,有钱财 然后的话把这个输进去,好,这时候的话他就又回到了之前那个白本,这就是他的一个白本的回退。

假设有个需求即将上线,所有的代码都已经提交到 master 分支,突然项目经理说有一个需求不用上了,但是在你这个代码之后,已经有其他人也合并了他们的分支,这个时候你会怎么去回推代码? 是手动删除代码还是 research 回退后重新合并分支?在这里最合适的方法是使用 get revert。 在 idea 的 get log 记录中有这样一个选项叫做 revert commit。 revert 的作用是撤交某一次提交或者某几次的提交,然后用一个新的提交来覆盖掉之前的提交。 模拟上面的这个场景,比如我现在对某个类做了第一次变更,然后进行了一次代码的提交,并推送到远程分支,接着又进行了第二次代码提交,同样推送最新的代码到远程的分支。这个时候其他人合并了一个新的 比较进来, 现在分支上一共有三次提交, 这个时候突然被告知第二次提交的这块代码不用上线了,于是需要将这次提交回退,只需要在 get 的 log 记录中找到想要撤销的那次提交,选择 reverse commit, 相当于这一次的提交就被撤销了。 get reverse 的好处在于,即使代码已经回退了,但是所有操作记录都还在。 reverse 的实现是通过逆向生成的方式进行代码的回退,比如增加代码就变成了删除代码。 这个时候项目经理又说,刚刚的代码还是一起上线吧。如果用手动删除代码的方式,现在就傻眼了。用 revert 的话,只需要对 revert 的这次提交再进行一次 revert 即可。可以看到代码又回来了,如果是多次提交同时 回退,只需要选中多个,然后执行 revert commit 就可以了。下期视频再来讲讲很多人用的更多的 reset。 以上就是本期视频的全部内容了,我是于宅,我们下期再见。

你一定也经历过 ai 写代码一本正经跟你胡说八道的痛苦,代码报错也就算了,想恢复都不知道怎么弄。我们用 ai 编程是为了省时间,可不是为了找 bug 的。 今天就给大家分享一个核心技巧,遇到 ai 写错代码,咱们就直接回滚,保证你效率拉满。 首先咱们来讲个简单的办法, ai 编程助手都是自带代码回退功能的,比如说去他在对话气泡的这个左侧就有回退按钮, 就是这个点一下就能恢复到这次问答前的代码状态,还能对比变更的差异,精确找回正确版本。包括科室可派老都提供了相应的回退功能,咱们来试一下。这是一个登录页面, 我们预览一下,我们给它添加一个注册页面的链接,添加注册新用户链接, 我们可以看到这里多了一个注册新用户的这么个链接。我们现在点一下回退,找到这个气泡,在这里看这个回退,然后我们回退到这个版本,提示确定要回退,此次问答重新发起时刻吗?我们点确认, 可以看到右侧这个注册链接已经没有了,这个就是 ai 自带的回退功能,这是一个及时纠错的好办法,相当于给代码加了一个实时备份,不过我们知道这个实时备份是远不 够的,意外的情况很多,你比如说忽然断电了,你的备份没了怎么办?重装电脑了怎么办?手滑点错了误删了怎么办?所以我们必须得有一个长期保障的功能,英文的拼写是 i t 提交记录一保存,后续就算多次 ai 编程出错,也能通过 g i t 回滚到最稳定的版本,我们来看 g i t, 它都需要有什么?首先我们要安装 g i t 的 软件,它是一个命令行软件,这是 g i t 的 网址,在右侧这里,在这里有个 install for windows, 点击这个进入它的下载页面,可以看到这里就是下载的链接。好,这个我就不给大家下载了。 g i t, 它是一个命令行这么个版本,我们还需要安装一个图形的界面,那么这个呢?我推荐这个 taurus, g i t 这个小乌龟。进了 taurus 的 页面之后,我们点击 downloud, 这里 有三十二位的,六十四位的安装版本,大家看自己的电脑系统来安装下载,安装之后下面这里还有,在这里还有原包。 这个是简体中文版,分别对应的三十二位的和六十四位的安装版本,大家可以针对自己的版本进行安装。我的电脑已经装了,我没有办法再重装一遍给大家看了。安装好了之后呢,我们还需要个网上的仓库,这个我推荐大家去 github 是 国内的一个 github, 经常咱们访问不了,所以我推荐大家上国内的这个 github, 经常咱们访问不了,所以我推荐大家上国内的这个 github。 点击右上角这个注册,我们就可以进去。 进到注册页面,在这里添上你的姓名,个人空间的地址,随便取个英文,然后添上你的手机号和点击同意,然后就可以注册了。我不注册了,我在这里登录。 好的,我教大家怎么新建一个仓库,在右上角这里点加号,我们点击新建仓库,这里就有仓库名称,仓库名称告诉大家你这个仓库是做什么用的,我们就写上演示 get, 它会自动给你按着英文取一个名称,你可以改成自己喜欢的,我就不改了,仓库介绍这里随便添,只要你自己能明白就成。这里有开源给所有人可见,还是这个仅仓库成员可见,一般我建议你们点私有,这样保证你的代码不会流出去给别人点击创建, 最重要的是拿到这个就是你的仓库地址,在这里点击复制我们如何出水化这个仓库,在这里点右键 g i t clone, 把仓库地址放到这里,然后目录选上我们的目录,然后选择确定, 就会把我们仓库克隆到这里,然后用 v s code 打开这个文件夹,好,我信任此作者,我们就可以在这个仓库里边新建一个页面,还是让他给我们创建一个登录页面, 然后我们来看一下这个页面,这就是 ai 上传的页面,我们来把它保存上传在这个左侧第三个按钮就是 t 的 版本管理,我们在这个框里边输入这个消息,也就是说我们这次提交要给他输入一个备注,好知道这个都提交了什么内容,方便我们进行回回滚,这里呢我们填写就是添加登录页面 提交,还有一个发布好,我们再生成一个页面,这次我们生成注册新用户页面, 这个时候我们点立即注册,就跳到了用户注册的页面,然后立即登录可以返回 好,这个时候再点击 g i t 这个页面就会提示有这些文件进行了更改,我们添上添加新用户注册, 然后同步更改好,可以看到下面就列出了我们曾经 提交了哪些更改,包括这些页面都有哪些页面进行了修改,点一下还可以看到都修改了哪些内容,这个就可以方便我们回退了,当我们要回退的时候,呃,由于回退是什么呢?是一个非常危险的动作,所以 vs code 在 它的 g i t 工具里是没有提供这种 图形化的操作的。那么我们在哪操作呢?给大家演示一下如何使用 taurus git 来进行围滚操作。首先我们到这个项目的一个目录,点击右键 taurus git, 这个里边有个显示日期,点进来之后呢,就可以在这里看到我们曾经的这些提交的记录,点进去就能看到都有哪些内容 进行了提交。比如说现在我们不想要这个新用户注册页面了,我们要回到登录页面这里,那么就在这里点右键,这里有个重置 master 到此版本,这是一个非常非常危险的动作,大家一定一定要非常慎重的操作,这里提交这个不用操作,这个点到应重置, 然后点确定,大家千万千万要注意,这是一个危险的动作。再提醒大家一遍,这是一个危险的动作,因为你将丢失后面所有的变更。确认了之后,点确定可以看到这是操作进度条,我们在这里注册新用户的页面就没有了。 然后我们看网上,网上的还是原来的版本,这个时候我们还要进行一步 taurus 推送,要选中这个强制按钮,然后点击确定, 这回再看,已经变回之前的状态了,如果你不强制推送一下,它会出现这个差异。好的,这就是今天给大家介绍的 g i t 回推大法,希望能对你有所帮助,谢谢大家的观看。

hello, 大家好,我是龙仔,今天呢我们来聊一下,呃,我在工作中近期遇到的一个问题,就是 get 来回退我们的历史版本, 然后遇到了一个问题,在我回退代码的时候,我用了这个 get reset, 然后来回退我的代码, 并且我的上一次的提交已经推送到了远程的分支的,所以说,呃,然后我来回推这个代码,要回推到上上一个这种版本, 然后因为我改的一个东西,后来发现不需要了,然后又返又又需要改回到原来的,所以说我要把就是我最新一次提车代码,然后回退往前面回退一个这样的一个问题。但是在我回退的时候遇到了一个 问题,就是我把代码回退了以后,我又重新提交了一次,然后可能是我没有注意吧,然后一些某些原因,然后发现在远程分支上, 然后并且已经已又打包部署了一次,后来在远程分支上看到我的代码其实并没有回退,回退成功,然后我之前改的有一个地方是仍然就是存在的,所以说,呃呃,今天的话就主要来揪一下这个 get reset, 然后还有一个 get revert, 两两个回退呃代码的这个两个命令,然后他具体的一些操作,然后他操作完以后一些具体的就是一些细节,然后我们今天来就是通过实践来操作一下。接下来我们通过真实的代码案例 来测试一下这个 reset, 然后还有它分了 reset, heart, reset soft 和 revert 这几个命令来回退我们的代码,分别是分别是什么样的一个效果?那首先呢,我们来演示的是 get reset, 嗯,刚刚 heart hard 就是强制回退这样的一个命令,我们看他到底是什么样的一个效果。 首先我们来提交一下提交一次代码, 好的,我们可以直接在 vs code 套这里我直接写这个吧。 好的,我们提交了一次,然后我们再来模仿提交一次,嗯,提交第二次 dn 字体, 我们都给他推到远程的这个分支上去 啊,利用这个间隙的话,我们来啊,这这个网络不太好,我们就先来本地进一个回退,然后看一下这个情况是怎么来搞的。 首先我们可以通过 hitlog 来看一下我们的提交,然后这里看到我们当前这个指针,这个 hide 是指在我们第二次提交的,然后前面的话还有一次就是第一次提交,现在呢我们要将回推到 回推到这一次,第一次提交我们要回推到这个版本。 get river reset, 刚刚 hars 这是强制回退,然后我们回退到这个版本,看一下他会有什么样的效果。 好的,我们可以看到我们的代码,他直接就回到了我们第一次,就是提交的这样的一个代码,就是只有我们的第一次提交,第二次提交他那个我们编写的代码直接给我们删除掉了。然后我们看一下这个 get log, 看一下 get log 以后,它这里直接这个 head 就指向了我们的第一次提交,然后它前面前面已经没有其他的了,这是我之前的一个测试,所以说它这个 head 直接就指向了我们的第一次提交,并且我们的第二次提交这个 get 这个记录它呀直接给我们删除掉了,它是这样的一个效果 好的,并且我们可以在这里直接, 然后重新就是发过一下我们的这个代码,这是这个 reset 刚刚 hard 的一个回退,然后我们再来看一下 reset soft 第一次提交 soft, 好的,第一次提交成功,我们再来看一下第二次提交,这里也提交上去,我们再进行第二次提交。 好,通过现在我们可以看到 get vlog 来看一下我们的这个提交记录,然后这里有我们的第二次提交 soft 和第一次提交 soft, 我们当前的这个 head 是指向这个第二次提交的, 然后我们同样还是要回退到,就是上一个版本就是我们的第一次提交,所以说这里我们进行一个 get reset 刚刚 soft 这样的一个回退,然后也是让他指向我们当前的这个版本。好的,我们来回退一下, 我们可以看到它这里就是回推到了,我们就是第一次的一个体验,我们可以看到这个 log 啊 写错了给他 log 看,他这个害的已经指向了我们的第一次提交,但是我们代码就是我们写的这个代码,他还给我保留了,他只是在这里提示我们第二次编辑的这个代码已经存入了这个暂存区,所以说我们他给我们保留了这个代码,所以说如果我们就是想 改的,比如在项目中改了很多处,我们只是想回推到某一个版本版本以后,然后修改某一部分的代码的话,我们就可以使用这个 soft, 然后那个强 这回退的话,就是会把我们的代码也会进行一个删除,所以说那样的话我们代码也会进行一个丢失,这个 soft 是可以保留我们的这个代码的,就是这样的一个区别。这里的话如果我们不需要这一行代码,我们直接给他保存好的,他就给我们看到了我们的这个更改,然后我们需要再给他就是删除这行代码以后,我们再给他进行一次提交, 我们再给它进行一次提交就行了。 sort 回退提交, 好的,我们现在已经回退了,来看一下我们的这个 gate log。 好,我们这里可以看到我们又多了一次,就是这个提交记录, 我们回推到了上一次的版本,然后但是我们又提交了一次,它是这个 head 指向了我们的这个 soft, 呃,回退提交,这这个这一次的记录上,呃,我们可以看到这个刚刚 soft 主要就是会保留我们的 这个原有的代码,这样的一个区别。然后最后我们来看一下还有一个命令, get revert 这样的一个命令,我们看一看一下 get revert 这样的一个命令,它有什么一个效果。 好的,我们来看一下第一次体压 r e v r t 第二次提交。 好了,我们已经提交上了,接下来我们来看一下 gitlog, 这里可以看到我们的第二次提交 revert, 第一次提交 revert, 同样我们来进行一个回退 get revert, 然后回推到我们的第一次提交,回到第一次提交,然后他这里就提示了我们他这里是有冲突的, 它可以看到我们就是第二次提交以后,它是这样的一个 demo, 就是我们当前的一个 demo, 如果我们回退以后回退的这个版本,它是,哎,我说我们是不是回退错了呀? a 八七二 f, 我们第一次的提交, 我们可以看到他这个代码,啊,他是现在回推到了我们第一次提交的上一个版本,就是我们还没有进行第一次提交的时候一个代码的一个状态,我们可以通过这里来看一下, 这是第一次提交,第一次提交我们的这个代码提交的是这样的一个代码,但是我们第一次提交的上一个版本,他是这样的一个代码,就是普通的第一次提交,他并没有那个 revert revert 这个字样, 所以说他实际上他现在的代码回退以后, revert 回退以后,他其实是到了这个版本这样的一个代码,此时呢我们就可以重新编辑我们的就是代码,然后进行一次新的提交。比如说我们可以把呃第一次提交这些代码给删掉, 对,我们保留这样的一个代码 在和平 mini 系中,然后完成合并。 好了,现在我们就可以看到我们已经改回来成了第一次这这样的一个提交。甚至我们可以就是改一下 soft, 我们重新给他写一个 soft, 相当于我们进行那个啊 revert revert 回退,我们进行了一个回退, 好的,就是这样的一个版本,所以说我们进行就是修改完我们的代码以后,重新进行一次提交,我们可以在这里看到 你没有看到,然后 get vlog 一下,第一次提交,第二次提交, 哦,这是我们的这个 revert revert, 第一次邀 revert, 相当于我们回推到了这个第一次提交这样的一个状态,然后并且进行了一个文档的一个编辑,就是我们代码又编辑了一次,我们可以看看,现在看一下它是这样的一个代码, 就是 reward 回退,它已经写上了,然后我们重新就是如果我们再远程的话,就是 get push 一下, get push, 哎哦,这个因为是我们 我远程是没有这个分支的,所以说他是不能满足这样的一个效果。好,那我们就不演示这个远程分支这样一个推送了,我们只要知道他如果我们远程也要同步的话,就是我们强制推送一下就可以了。 get pro 是刚 f 这样推送,就是这样强制推送一下就可以同步我们的本地代码和我们的远程代码保持一个同步。 好,今天的分享的话就主要来呃分享一下呃 get reset 和 get revert 他们的这两个回退代码的呃两个命令, 我们可以看一下它最主要的一个区别啊, get reset 和 great revert 它主要的一个区别的话就是 get rest revert 会保留之前的提交记录,而 get reset 会删除之前的提交记录。在这里我们也可以看到 get log 的时候,我们这是回推的这一次提交,然后这是第二次提交,然后再再往下面我们第一次提交,他这个提交记录都是完整的, 但是我们的像像,比如说我们的这个我们的 reset, 它这个我们可以看一下它这个 log, 这个 get the log, 然后它就只有它,就只有我们的 reset, 刚好第一次提交,我们的第二次提交,它那个提交记录已经给我们删除掉了,它这个提交记录也被删除掉,所以说这就是它们的一个主要的区别,就是 get revert 会生成一个新的提交记录,而 get reset 不会 gtr 为什么会生成一个新的提交记录呢?就是我们刚才看到的这样一个状态,你看相当于我们重新提交了一次代码,所以说我们会生成一个新的提交记录,这就是他们两个最主要的一个区别。好,今天的分享的话就到这里,谢谢大家。

哈喽,大家好,每天分享一个经典面试,今天分享一下 get 中操作, get report 和 get reset 这些的区别 啊,我们举个例子啊,比如说我们现在有三个小伙伴分别提交了三个呃操作啊,这样的话就是当我想撤销第二个这操作的时候, 那我们如果是使用 get reverb 操作的话,就相当于我们会把第二个提交呃撤回,然后再创建一个新的提交 啊,再将啊原先修改的东西进行还原,这样我们的版本的履历里面,比如说我是有原先有三次提交履历,再加一次我撤销的一个提交履历,如果 我们使用 get reset 操作的话,那这样的话就是我们第二次撤销之后,相当于只会保留第一次提交的这个履历啊,他同时会修改我们的这个提交的一个履历。 所以说以上就是这两者的一个区别,我们综综上所述,我们 get re rever revert, 它会修改提交履历,它只会保留 re rever reset 对应的这个版本号,之前的保留,后面的话都会 删除掉。然后我们 get revert 呢,它只是删除对应的这个版本号,然后再创建一个新的提交,然后进行啊,让我们看到的履历的话,会多了一个提交履历。好的,今天的分享就到这里。

大家好,今天给大家介绍独特斯 gat 在 h 标准中的使用。首先打开 h b u 灯,找到工具插件,安装安装新插件, 找到 get 插件,点击安装,安装好之后会在已安装插件里面显示返回, 点击 total skate 设置,找到 gate, 这儿 exc 滤镜, 选择 get 当中录录录,点击确定,再打开 h b u 的, 点击文件新建项目,选择创建一个 a p p 项目,项目名称必须要填入英文, 然后再点击创建。如果说你的项目在 get 的远程仓库, 那么需要你从 get 的远程仓库拉取到本地路径,点击从 get 导入项目, 找到你 get 远程仓库的项目地址,复制填入,填 入之后点击导入,导入之后导入之后会在 h b 的左边生成一个项目的文件夹。

法兰克加工中心没有公司回退功能,那么误操作丝锥停在中间了怎么办?兄弟们大家好,我是杨树,今天杨树给大家讲一下法兰克加工中心遇到丝锥共一半停在中间了啊,如何让它安全退出来? 点赞加关注一行代码解决问题。首先我们要先了解程序当中两个参数,第一个是转数,转数我们给的是多少,比如说我这个是 s 一 百, f 给的是多少? f 是 八十,因为是 m 五的四锥啊,我们这边法兰克是需要计算转数乘螺距等于定给。记住这两个参数我们可以在 mdi 模式下进入到 mdi 模式下,我们编辑这样一行代码, g 九幺, g 零一, c 给了一个啊相对高的一个高度,然后 m 零四组成反转, s 一 百和编程是一样的, f 八十,这样就好了,编辑这么一个程序就是让他反转退丝上来。现在咱们执行一下 这种退丝方法,其实和公司回退是一样的,这样不会伤及公过的螺纹。然后道具安全上来, 这种方式不单适合法兰克系统,也适合三零系统,但三零系统直接有一个公司回退很容易找到,所以说法兰克我们就用这种方式来退,一样能解决问题。怎么样,大家都学废了吗?那这期视频就和大家分享到这,咱们下期再见,再会!

大家好,我是加购数据局,如果你刷到我的视频,请先给我点击一个免费的关注,然后我们开始今天的内容。 你有没有经历过代码写着写着就报错了,回想到昨天能运行的状态,却发现根本回不去了,或者想试试新功能,又怕把原来的代码改坏,复制了好多备份文件夹,最后哪个是哪个都搞不清楚了。 大多数新手会用复制文件夹的方式备份,比如说项目 v 一、 项目 v 二、项目最终版、项目最终版 v 二。这种方式呢,不仅浪费空间,而且无法快速找到哪个版本特有的功能。 get 的 诞生正是为了解决这个问题的。 那么 get 到底是什么呢?其实你需要的只是 get。 get 是 一个版本控制系统,就像给代码装上时光机,让你随时存档,随时读档。想象一下,你在玩游戏时可以随时存档读取 get 对 你的代码就是一样的功能,就比如说我们玩 呃竞速逃亡,你可以给每一个很难跳上去的地方存档,然后你在前面再往前走,摔倒之后你可以存档到回到你之前的 位置。那 get 呢?是由 linux 支付 linux 叉 word 在 二零零五年创建的,当时 只是因为 linux 社区使用的版本控制工具 backslash 收费了, linux 只用了两周,就写出了 get 的 初试版本。 get 这个名字在英国俚语中是饭桶的意思,是 linux 的 自嘲。 接下来是 get 的 核心概念。 get 的 工作原理其实很简单,就三个区域,工作区、暂存区、仓库。你的代码在工作区里编辑,用 get id 命令放到暂存区,再用 get commit 命令保送到仓库。 为什么需要暂存区?因为你可以分批提交,比如说只提交其中两个文件,而不是全部。这就好比购物,先挑商品,加入购物车暂存区,最后再一起结账,这就是提交到仓库。 仓库里的每一个提交都有唯一的一个哈希值,比如说八 a, 二 b, 三 c, 这是根据提交内容自动生成的,即使文件内容完全相同,只要时间不同,哈希值也是不同的。 接下来我们来讲出售化仓库,我们可以开始实战了。第一步,打开终端,输入 getint, 这条命令会在你的项目里创建一个点 get 隐藏文件夹, get 会把所有的版本信息都存在这里, 点 get 文件夹默认是隐藏的,在 windows 上需要开启显示隐藏文件夹才能看到。这个文件夹包含了所有的版本历史,删除它就等于删除了所有的 get 记录。一个项目只需要触触划一次之后就可以一直用。如果你想把一个已经存在的项目变成 get 仓库,直接在项目根目录运行 get in 就 行。 那接下来是保存和修改。第二步,保存你的修改,先输入 get add, 注意这个点表示当前目录下的所有文件,然后输入 get commit gm 描述, 把赞助区的文内容提交到仓库。 get ad 后面的点表示当前目录,你也可以指定具体文档,比如说 get ad app 点 gs index html。 如果说第一次提交, get 会提示你配置用户信息。 get config conglomerate user name, 你 的名字,还有 对于你邮箱信息的提交,提交描述一定要写清楚。好的描述,例子是添加用户功能,登录 登录功能,还有说是修复首页导航 bug, 不好描述就是 update fix 完成这些描述。你一周之后,可能你明天你都不知道你改了些什么,那接下来是 查看状态,有时候你会忘记自己改了什么,这时候输入 get status, 这是 get 里最常用的秘密,会告诉你哪些文件被修改,哪些是新增的,哪些已经准备好了。 get 会用 不同颜色标识文件状态,红色表示未暂存,绿色表示已暂存。你会看到三种状态, modified 文件被修改了,但还没有加入缓存区。 rtricky 的 新文件 get 还没开始跟踪, manager 已加入缓存区,等待提交。 get status 还会提示你下一步该做什么,非常友好,建议养成习惯。每次提交前都用行一下 get status, 确认你要提交的文件, 然后就是查看历史,想看看自己的提交历史。输入 get log, 你 会看到所有的提交记录,每一个提交都有一个唯一的哈希值,还有提交时间和描述。 get a log 默认会打开一个分页查看器,按空格翻译,按 q 退出。每个提交的开头就是哈希值,比如说八幺二 b 三 c, 通常值显示前七位,这个哈希值是全居为一的,即使不同的项目也不会重复哦。 常用参数呢?有 get log online 简洁显示,每个提交只占一行。 get log 三查看最近的三条提交。 get log group 图形化显示分支截框 q 等可以退出 get log 的 查看界面。 最厉害的来了,假如你的代码改坏了,想回到之前的版本,只需要 get checkout 加上那个版本的哈希值,啪的一下,代码就恢复到那个版本了。 回退时记得先提交当前修改,否则会丢失。 checkout 有 几个常用写法, get checkout 八幺二 b 三 c 回收到指定版本 to checkout hide one 回收到上一个版本,波浪一表示呢是退一步。 如果回退后发现不对,可以用 get checkout 回到刚才的版本。注意,这个命令在 get 二点二三版本后被 get switch 和 get risk 取代了,但 checkout 还能用。好了,今天的 getty 讲解就到此结束了。

目前新版兰超过三十天还是支持回退的,准备这些资料,然后准备好之后发给客服,就可以去打开回退入口, 很多客户还是不知道怎么去准备哈,具体指的是哪些?然后我今天一个视频带大家看清楚,像第一个的话就是回退承诺函,那我也写了一份哈,在这里就是第一个的话就是执照名称加代码,然后这里是 抖音号的昵称,抖音号就是一般是营业执照名称哈,这里是那个抖音号绑定的手机号, 一定要注意,这是手机号的实名人哈,手机号是谁的实名就填谁的,也是一样的。手机号的实名人,这是第三页,第三页就没有,第二页的话就是 在这里的话是如果说公司的话就盖公司章,如果说是个体的话,就写公司个体执照名称,然后按个手印,执照地址,然后签署日期。这里的话呢一定是运营人号,就是抖音号那个实名人,运营人的 签名加上按个手印,然后可以去写执照地址,或者说写运营人身份证上地址,签收日期,还有的话就是他会有在这里有一个,那个会有一个期封章吗?期封章的话我们就写上法人的姓名, 然后按个手印,这是个体的,公司的话就更简单了,拿一个公章卡在上面 啊,我们继续回来,然后这是营业执照名称,这就不用说了,抖音实名认证的截图哈,我们像这种,像这种的话就是直接点进去,在在这一步的时候点进去,然后再截个图就行了。 后面的话手持半身,手持半身照跟法人手持营业执照加身份证半身照,我们一起来说这样一个图的话就可以看清楚了哈,就这样的要求,没有遮挡,看得清上面文字, 后面的话就是抖音账号安全界面截图,就是刚才说的这种,就是这个界面截个图就行了。 然后在这里的话就是入网证明,现在基本都是上网卡哈,下载啊,所属的 a p p 登录上去之后我个人头像,然后详细信息截个图就行了, 这里一样的。然后余额截图的话,在这里是点一下,我右上角有三条杠,我的钱包点进去余额给它清零。如果说有那个直播或者说视频的收益,也可以去选择放弃啊,不懂的话可以去直接私信 回退的。绑定的手机号哈,就是目前的话绑定的手机号,法人身份证正牌面都一致的话,不用去重复填写的,准备好这些资料的话直接发给客服就可以了。嗯,二十四小时之内就能打开回退入口。以上就是这些。

hello, 大家好,今天咱们来聊个特别实用的主题,怎么用 fast api, toras orm 还有 a rich 这三个拍帧神器,搭一个性能超高的异步 api。 你 想没想过怎么让你的 fast api 应用既能轻松地跟数据库打交道,又不用担心以后需求变了,维护起来头痛? 嗯,如果你想知道答案,那今天这期内容你可千万别错过了。好,那咱们今天就分这么几步来走。首先呢,我们会看看 v s api 在 跟数据库打交道的时候,到底会碰到什么挑战, 然后我们会学习怎么用一种特别 python 的 方式来定义数据模型。接下来这是一个重头戏啊,就是要掌握数据库迁移这个技能。之后呢,咱们就动手开始写 api 接口,最后把所有东西都串起来,看看这个完整的技术站到底是怎么跑起来的。 行,那咱们就直接进入第一部分 fast api 的 数据库挑战。你可能会想,为啥要叫它挑战呢?嗯,咱们马上就来看看。你看,这问题就来了,你选了 fast api, 肯定是看中了它又快又现代,对吧? 但关键是怎么处理数据库呢?尤其是在一个异步的看家本领就是异步,这让它性能特别高。 那什么是一补?说白了就是程序在等数据库返回数据这种慢动作的时候,他不会在那傻等着,而是会抽空去干点别的活,比如处理其他用户的请求,这样一来效率不就上去了吗? 但问题是, fast api 自己是不管数据库这摊子事儿的,所以要想让他的异步优势完全发挥出来,咱们就必须给他找一个同样是异步的数据库解决方案,那么该选谁?答案来了,就是 tortoise orm, 他 就是咱们今天的主角,一个可以说是为了异步而生的 orm, 而且他最棒的一点是来自大名鼎鼎的 jungle orm。 所以啊,如果你之前玩过 jungle, 那 上手 tortoise 简直是分分钟的事儿,看就会特别亲切。有了它,我们就能用一种特别优雅、特别排 sonic 的 方式一步地去操作数据库了。 好工具咱们选好了,那下一步干嘛呢?当然是得告诉这个工具,咱们的数据到底长什么样,对吧?这个过程就叫做定义数据模型。在咱们看具体的代码之前,先花半分钟快速过一下到底啥是 o r m? 你可以把它想象成一个翻译官,它的魔力就在于能把我们写的拍分类自动地翻译成数据能看懂的表结构。 也就是说,我们只需要跟拍分类打交道,写我们熟悉的类就行了。至于背后那些复杂的 s q l 查询语句, o r m 会默默地帮我们搞定一切 来,咱们看个具体的例子。这里我们定义了一个 student 学生类,你看它继承了 dortus 的 model 里面的这些 id, sno name 字段就直接对应了数据表里的一列一列的数据。 但更酷的是什么呢?你看这个 foreign key field 和 multi model field 这种字段能特别直观地帮我们处理好复杂的表关系。比如一个班级有多个学生,一个学生可以选多门课等等,写起来是不是感觉特别清晰,特别简单? 模型咱们是定义好了,看着很完美,但大家都知道,现实世界的项目需求总是在变的,对吧?今天加个功能,明天改个自断,那我们的模型也得跟着变。这就引出了咱们下一个非常关键的话题, 没错,这个问题就是数据库迁移要解决的核心痛点。你想想,如果你的模型要加一个新字段,或者改一个字段的类型,你总不能直接把原来的数据表删了,再重新建一个吧?那线上跑的数据不就全没了吗?那绝对不行。 所以咱们需要一个工具,能安全的一步一步的把这些代码上的变更统布到数据库里,还不能丢数据。 这时候 eric 就 闪亮登场了,他的工作流程特别清晰,就四个核心命令, init 和 initdb。 这俩是项目一开始的初步操作,基本上做一次就够了, 之后就进入循环了。每当你的模型代码改了,你就先运行 migrate, 它会帮你生成一个变换文件,然后再运行 upgrade, 把这个变换应用到数据库里。就这么简单, 咱们直接来看实际操作,你看左边,我们先运行 ericinet, 它会帮我们生成一个配置文件,然后看右边,再运行 ericinet db, 它就会读我们写好的模型,然后在数据库里把对应的表全都创建好。你看,就这么两步,出石化工作就搞定了。 好,现在假设项目建行了一段时间,需求变了,产品经理说咱们得给 admin 这个模型加一个新字段,就叫 x x 吧,就向右边这样,那代码我们改完了,数据库怎么办呢? 答案其实很简单,我们只需要在命令行里敲一下 eric migrate, 它就会自动扫描我们的代码,发现模型的变化,然后生成一个迁移文件。你看右边这个文件里就是一条 alter table 这样的 sql 语句。 最后咱们再运行一下 eric upgrade, 搞定这个变更就安全地应用到数据库里了。整个过程是不是特别清晰,完全在你的掌控之中 行,到目前为止,咱们的数据库和模型已经都定准备就绪了,现在就到了最激动人性的部分了,把我们的数据通过 api 向全世界开放。 在写 api 的 时候,有一个最最核心的概念就是路由,你可以把它想象成一个交通警察或者前台接待。 这张图就画的很明白,当一个网络请求,比如说用户访问了某个网址,这个请求就会先到我们的程序这里, 然后陆游就会根据这个网址决定应该把这个请求交给哪个具体的函数去处理。就是这么一个指路的过程。 为了让咱们的 api 设计得特别清晰,让别人一看就懂,我们通常会遵循一套叫 restful 的 设计风格。这就像是一种行业里的通用语言, 它的核心思想很简单,就是用不同的 http 请求方法来代表对数据的不同操作。你看这个表, get 就是 拿数据 post 就是 创建新数据, put 是 更新,而 delete 就是 删除。这套规范可以说已经是现在公认的最佳时间。 来,咱们看个最常见的操作,获取所有学生信息。你看这个代码儿,就上面这一行, at api student, 点 get 杠 student, 它就是一个装饰器,等于是在告诉 fast p i 喂, 以后只要有 get 请求,访问 slash student 这个地址,你就把活儿交给下面这个 get all student 函数来干。然后函数里面就更简单了,一行 away student, 点儿 all, 点儿 values, 就 通过 totis oim 一 补底,从数据库里把所有学生数据都查出来了。整个代码是不是特别干净利落? 那添加一个新学生呢?同样超级简单。我们用 add post 装饰器,这里面藏着一个发 cpi 的 大招。你看函数参数里的这个 student model, 发 cpi 会用它来自动检查前端发过来的 json 数据,看格式对不对,字段全不全。 这个数据验证是自动的,特别省心。一旦验证通过,我们又是只需要一行代码 await student dot create, 就 能把这个新学生的信息一步地存进数据库。删除操作也是一个道理。你看 url 里的这个 student id, 这叫路径参数。 fast api 会非常聪明地把它捕捉到,然后作为参数传给我们的函数。函数里面就更直接了,还是一行代码 filter id, 等于 student id delete, 就 能精确地找到那条记录,并且删掉它。当然了,整个过程也必须是异步的,这样才能保证我们整个应用的高性能。 好了,到这里,咱们已经把所有关键的步骤都走了一遍。现在让我们稍微退后一步,从整体上审视一下我们亲手搭建起来的这个现代化的 api 技术站。 你看,这三个工具就像一个配合默契的团队。 fast api 呢,是我们的总指挥,负责处理所有的网络请求和路由,是整个 api 的 股价。 torus orm 呢,就是一座桥梁,它优雅地连接了我们的业务代码和数据库,让我们能用纯拍算的方式进行异步数据操作。最后, erich 就 像是数据库的板等控制工具,它为我们每一次的数据结构变更保驾护航,确保整个过程安全又可靠。 它们三个各司其职,又 k 合得天衣无缝。所以你看 fast api、 tortoise 再加上 airridge 这个组合,全答出来就为你提供了一套非常完整的用来构建化弹式 web 服务的解决方案, 它既快又好,管理,扩展性还强。那么现在这套强大的工具已经交到你手上了,下一个你准备用它来打造什么样精彩的项目呢?
