粉丝4.2万获赞25.4万

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

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

最近在研究一个用 u e 四点幺七开发的游戏,我打算编译一个 u e 四点一七的编辑器。在编译原码之前,需点击 setup, 把安装引擎的依赖库报了一个错误, filter download。 因为从寓意四点二五开始,官方使用新的 c d n, 这导致四点二五以前的版本都无法下载到依赖库。解决的方法很简单,打开最新的 unreal engine 的 d 仓库,找到 engine bill come in keep ups c m l 这是刚下载的 come in get depths cml, 复制这个文件,替换旧的 engine build come in get depths cml 重新运行 set up but 此时可以下载引擎所需的依赖库。学会了吗?

同学们大家好,我是金城智能马工,这节课我们来学习一下如何从版本库中删除文件。删除文件有两种常用的方法,首先我们来看一下第一种就是直接删除文件,然后进行提交。首先我们看一下本地仓库中的文件内容, 比如这里我们来删除 fill 一 点 test, 我们这里使用的是 im 命令,在本地工作区中删除文件。注意一下这里的 im 并不是 get 的 命令,而是 linux 操作系统的命令。然后我们来看一下文件是否被删除了, 可以看到 file 一 点 test 已经被删除掉了。然后我们来看一下仓库的状态, 这里它提示我们 file 一 点 test 已经被删除了,那么这里它还提示我们 需要通过 get id 命令来更新一下暂存区。注意这里有点不太好理解,很多同学可能会有疑惑,我们不是要删除文件吗?为什么还要添加到暂存区呢?因为我们刚刚只是在本地的工作区删除了文件,而暂存区的文件还没有被删除。 我们可以使用 get ls 杠 fos 来查看一下暂存区的内容, 可以看到 bear 一 点 test 还保存在暂存区,没有被删除。那么这里的 get add 我 们就可以理解成要告诉 get 删除这个文件,我们来执行一下, 我们执行完成之后,我们再来查看一下暂存区文件中的内容, 可以看到暂存区中已经没有 fail 一 点 test 了,这种方法有点麻烦,首先我们要从工作区中删除文件,然后更新一下暂存区,最后才提交。那么 git 也给我们提供了另外一个方法,就是我们可以直接使用 gitim 命令, 下面我们来演示一下 gitim 的 用法,我们来把 gitim fail 二点 test, 可以看到和 fail 一 点 test 一 样, fail 二点 test 也被删除了,而且我们可以通过 ls 命令来看一下 fail 二点 test 这个文件在工作区中有没有被删除。可以看到工作区中的 fail 二点 test 也不存在了, 在暂存区当中, fail 二点 test 也是被删除了的。 我们可以看到,我们只是执行了一次 gitim 命令, git 就 把这个文件从工作区和暂存区同时删除掉了。最后非常重要的一点就是要记得提交,否则删除的文件在版本库中还是存在的。我们来提交一下, 这样 file 一 点 test 和 file 二点 test 这两个文件就从版本库中删除掉了。好,我们今天的内容就到这里,我们下节课再见。

大家好,我是加购数据局,如果你刷到我的视频,请先给我点击一个免费的关注,然后我们开始今天的内容。 你有没有经历过代码写着写着就报错了,回想到昨天能运行的状态,却发现根本回不去了,或者想试试新功能,又怕把原来的代码改坏,复制了好多备份文件夹,最后哪个是哪个都搞不清楚了。 大多数新手会用复制文件夹的方式备份,比如说项目 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 讲解就到此结束了。