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 为什么会生成一个新的提交记录呢?就是我们刚才看到的这样一个状态,你看相当于我们重新提交了一次代码,所以说我们会生成一个新的提交记录,这就是他们两个最主要的一个区别。好,今天的分享的话就到这里,谢谢大家。
粉丝85获赞604

用 idea 开发,如何快速用 gt 拉取指定分支代码?使用 idea 默认只能拉取 master 分支的代码,如何拉取指定某一分支的代码呢?方法也很简单,一准备空的文件加 gtns 二关联远程仓库 gt remote at origin gt lab 意志三 拉取远程分支代码 gooooooooooooooooourgring 远程分支明,然后再用 idi 打开项目即可。更多实用内容欢迎关注马农地坑手册。



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

哈喽,大家好,我是鱼仔。在平常项目开发过程中,经常会遇到在 excel 分支中代码写到一半,但是因为种种原因要切换分支的情况, 很多人在这个时候就会选择把代码提交了再切换分支,不然可能会出现代码冲突的情况, 但是这样的话,这一次的提交就会变得没有意义。对于这种情况,其实 git 给了一种很好的解决办法,叫做 station 赞存。 我现在在这个分支上写了一点代码,在切分之前就可以使用 get station 命令,当前本地的所有变更就会暂存到一个站中,然后切换分支即可。 如果要对这一次暂存增加点注视,就可以使用 get stitch save 加上注视的命令。 通过 gate station list 可以看到暂存区中的所有记录。当想要恢复暂存的代码时,可以通过 gate station pop 将最新的一次暂存记录的代码恢复到本地,并且会在暂存区中将这次记录删除。这是一个初战的过程, 如果想要恢复记录,又不想要把记录删掉,就可以通过 get stage apply 加对应的 stage 编号来实现。如果只想删暂存记录的话,可以通过 get stage drop 移除指定的暂存信息。 如果想要看到暂存区的代码和本地代码的区别,可以通过 git station show 这么多命令,记起来有点麻烦,直接使用 idea 工具即可。在 gate 特别页中可以看到有一个 stage changes, 并且可以输入 实信息,点击 create stage 就可以将代码暂存起来。当需要恢复时,选择 on stage changes, 并且 video drop, pub, apple 功能都有, 这些按钮都和命令行的效果是一致的,这样切分制的问题不就解决了吗?以上就是本期视频的全部内容了,我是鱼仔,我们下期再见。

今天给大家分享一下在 idea 中使用 get 的存储功能。场景一是临时存储已修改的代码,比如正在分支 a 上开发某个功能还未完成,突然要切换到避分值上去修复一个剪辑 bug, 这时候该怎么办? 场景二是同步代码,由于不小心本来要在 a 分之上开发的功能,代码却写在了 b 分之上,这种情况又该怎么办?接下来我们打开项目, 首先当前的分支是太死的分支,这里有两个分支,一个太死的和一个 mast。 首先在太死的分支上,比如说我们进行了两个操作,那第一个操作是打印一行豫剧, 新增加了一行语句,第二个操作是新建了一个类。 现在晚上 这两步操作之后,突然有一个紧急需求,需要切换分支,去马斯的分支上去修改一些紧急 bug, 像这种情况该怎么办呢?那这里呢就用到了 get 的存储功能,那是怎么操作的呢?我们右击项目,然后再选择 get, 然后选择 si 是 changes, 他这里需要写一个名称,那我们这里写一下, 那下面呢有一个 cable index, 那这个选项是做什么的?那这个选项的意思是把当前的代码进行存储,那并且 还是可以显示的,那意思就是说是在切换分支的时候也可以进行携带,那这里的话我们先不选这个选项,然后我们点击创建, 那创建完之后,我们这里发现他代码已经恢复了原样,其实呢我们的代码已经进行了存储,那比如说我们现在在切换分值,骂死他, 那切换完 master 之后,我们在 master 分支上进行了相应的操作之后,再回去分支 test, 那我们再切回去,那切回去呢?下一步我们需要恢复存储的代码,那我们怎么恢复呢?我们还是 ug 项目, 这里呢,我们选择一个 s h 车子, 那打开这个选项板,这里有两个记录,那之前的这个记录是之前的测试的,那这里呢?我可以把这一个删掉,那删掉的话就选择这个状 清除,那目前剩下的是零零一,这一个我们恢复的话,我们可以点 apply 就可以进行恢复。那这里呢?还有一个 vivo, 那我们点一下 vivo, 我们就可以看到存储的哪些东西,那这里呢?我们可以看到存储了, 新增加了一行改动,以及新添加了一个类。这里的可乐是把所有的列表中的全清空。 这里还有一个选项 hope sh, 那这个选项呢?我们可以进行勾选,那勾选的意思就是说我们在恢复的时候,顺便把这条记录从列表中删除,那如果不勾的话,那相当于恢复,那这条记录还是在这个列表中, 那这里呢?我们先不进行勾选,我们直接点恢复,那恢复之后,我们就可以看到我们之前的代码已经还原出来, 那这是一种场景。那第二种场景呢?就是同步代码,比如说要在 a 分之上开发的功能却写在了 b 分之上,那这种情况应该怎么办? 那如果普通的方法就是把改动的代码,然后粘贴复制过去,那这里呢?我们既然学会了存储,那我们可以用存储来进行操作。 哇,这一次是真的好,那这里呢,我们可以再新建一个存储,起个名字叫零二创建,那创建完之后我们切换分支 master, 切换完 master 分支 之后,我们在 master 分支打开存储列表,有这一个零二,然后我们点应用, 那这样的话就可以实现不同分支中利用存储功能来进行迁移。今天就讲到这,谢谢大家。

在 job 企业及项目中, get 通常是使用分支管理来进行项目开发和版本控制的。一、主分支 master 主分支是项目的主要分支,包含了稳定版本的代码。通常主分支只有在项目版本发布时才会更新。二、开发分支 develop 开发分支是开发团队进行开发和测试的分支,所有新功能和修复的 bug 都将在开发分支中完成, 并在完成后合并到主分之中。三、测试分支 test 测试分支是一个用于测试和调试新功能的分支,以确保他们与现有代码的相互作用良好。四、 功能分支 feature 功能分支是为实现特定功能而创建的分支。在开发过程中,每个功能都应该在自己的功能分支上开发和测 测试,最后将其合并到开发分支中。五、修复分支 hot fix 修复分支适用于紧急修复生产环境中的 bug 的分支。修复分支通常从主分支中创建,并在修复后合并到主分支和开发分支中。六、 发布分支 release 发布分支是为准备发布新版本而创建的分支,在发布前应该在发布分支上进行最后的测试和准备工作。在完成后,发布分支应该 并到主分支和开发分支中。在招募企业及项目中,分支管理的主要目的是帮助团队协作,保证代码质量和稳定性,以及支持快速迭代和版本发布。在使用 get 进行分支管理时, 需要注意合并冲突的处理和代码的代码质量控制,以确保项目开发和发布的成功。

哈喽,大家好,我是鱼仔。在开发过程中可能会出现下面这种情况,你在 a 分支里写了一段代码,但是另外两个同事在 b 分支和 c 分支上也需要用到这段代码,该怎么办呢?比较简单的方法是把两个分支的代码做个地方,然后把 a 分支的代码合到 b 分支。 这种方法适合同步少量代码,但是如果大量代码的话,就可以用到。今天要介绍的一种技术,配曲。配曲的意思是补丁配曲可以将提交记录制作成一个或多个补丁,然后由其他人来合并这个补丁。 比如我在 a 分支修改了一个 bug, 并提交了一次。 b 和 c 分支中也有这个 bug, 于是就可以在 a 分之中用下面的命令打上一个补丁。这条命令的意思是将最近的一次提交打成 补丁,并且把补丁文件放到后面的路径里去。于是我的桌面上就出现了一个补丁文件。 但是有的时候修一个 bug, 可能用了三次提交就可以将最近三次的提交打成三个补丁数,最近几次提交容易数错,可以直接用提交的记录号来生成补丁。比如要生成第一次提交对应的补丁,找到对应的记录后,使用下面的命令即可 执行。完成后,一个补丁文件就生成了。打了补丁的下一步是应用补丁,通过下面这条命令检查补丁的情况。 通过 getaplate check 命令提前检验 page 是否能够打上,如果没有任何输出,说明没有冲突。如果没有问题的话,就可以用 geet am page 的名称将这个 page 打到对应的分支。这里面还会有一些常用的命令,我放在视频最后了。 接下来介绍一下用 ida 如何更快速的打补丁。在 case the log 日志中选中要打补丁的记录,右键选择 cross patch。 第一个选项是保存到文件里,就和上面的命令一样。第二个选项是保存到剪切板中,我这里选择保存到文件里,一个文件就出来了。然后在 get 的工具栏中选择 get a play page, 接着点击 ok, 就可以把补丁打上,十分方便。 最后是补丁的一系联名两行代码。以上就是本期视频的全部内容了,我是鱼仔,我们下期再见。