粉丝9.9万获赞147.4万

大家好,我是 nice killer, 欢迎观看我的 nice killer 戴沃尔普斯手扎视频。 今天的主题是使用 gpg 签名提交代码。在常规的情况下,我们只需要有 gatsleve 服务器的用户名密码,便对代码有了操作权限。那么如何证明本次修改是作者本人呢?这里就用到了 gpg 签名, 既 pg, 又称 gnupg, 它是一种非对称的加密技术。首先需要在用户端创建一个密药盾, 密药对由公药跟撕药组成,然后导出公药证书,并且把公药证书配置在 getleg 当中。 最后把我们的代码仓库配置成为签名提交。当这三步完成之后,就完成了我们所需要的配置。为了本次学习,我们需要准备一个学习环境,这里我会创建一个新用户,接下来的所有实践都会在这个新用户下进行。 这里的名称和用户名可以随意填写,一定要注意电子邮箱,电子邮箱地址与证书的地址是匹配的,如果不匹配的话签名会失败。 用户创建完成之后,我们需要给他一个出水密码, 账号首次登录会提醒我们修改密码, 修改密码完成之后再次登录, 现在这个账号就创建好了,之后我们的所有实验都会在这个账号下进行。为了方便大家学习,这里我讲 gatsleve 的界面语言设置成中文, 设置之后需要退出重新登录,重新登录之后可以看到界面已经变成中文。 接下来我们要做的就是安装 gpg 这个软件,然后创建密耀队进。 upg 的使用方法不在本届的学习范围,如果你感兴趣可以看我的 nice kids 雷尼古斯手扎 清油。 pg 的安装方法也非常简单,根据你使用的操作系统选择不同的安装方式即可。我本人使用的是苹果电脑,所以接下来的所有操作都是在苹果电脑上完成的。 安装完成之后我们就可以创建密药队了。请看当前屏幕,当前屏幕上的第一条命令就是创建密药队。注意油箱,这里的油箱必须跟前面该他的账号当中使用的油箱相同。 执行该命令之后会提示你输入 y 或 n, 这里只需要输入 y, 然后回车密要度就创建好了。我们也可以使用 gpg 杠 k 三数查看当前的密要。现在让我们来看一下演示, 现在创建妙对 这里直接敲灰车即可。至此已经完成了公要跟私要的创建。下面我们要坐在 是给 gtale 添加蜜药,使用当前屏幕上的这段命令,可以把功药导出来,然后复制并点粘贴到 gtale 当中。下面看演示,首先导出功药复制, 然后进入我们的好 gatslet, 选择 gpg 泌药粘贴到密药区添加密药添加完成之后会显示已验证, 如果显示的未验证有可能是油箱不匹配,请检查两个油箱是否相同。现在到了最后的环节,也就是配置我们的 git, 由于这里我们需要做代码的克隆跟提交,所以我们需要创建一个新项目。 项目创建好之后,点击克隆按钮,把地址复制出来,然后 使用 git 命令把项目克隆下来。现在我们进入项目目录,配置该项目使用的邮箱地址。 接下来配置签名秘药。最后一项配置是开启提交签名, 我们可以使用 gig 卡菲格命令杠杠 des 的来查看配置的情况。 现在我们做一个测试,创建一个空文键,然后把它添加到版本库当中, 然后提交。最后是铺设到远程, 这里我们可以看到已经铺置成功。现在我们 切换到 get app, 进入仓库点提交,我们可以看到一个已验证的绿色按钮, 点击跟按钮可以看到 gpg mil 的 id。 今天我们学习了如何签名提交代码和 gnupg 的基本使用。由于视频时长的问题,这里无法对 gnupg 做全面的讲解。 如果你有兴趣可以看我的 nice killer 练尼古斯手扎。今天就先讲到这里,喜欢我的视频请给我点赞转发,谢谢观看!

哈喽,大家好,我是鱼仔。最近和一些开发同事聊天的时候,发现很多人竟然不知道 gishly 的 fork 和 p r。 本期视频通过例子介绍 fork、 pr 等概念,现在有这样一个场景,打算给一个开源框架提一些代码,应该怎么做?第一步就是 fork, 打开 get hub, 随便进入一个项目,可以看到右上角有个 fork, fork 的意思是将这个仓库复制一份到自己的仓库, 此时相当于这个开源框架的代码存了一份快照在你自己的 get 仓库里。现在要做的第二步是将仓库的项目下载到本地,这个时候就要使用克朗,克朗是将远程仓库的代码下载到自己的本地, 通过 gets cloud 命令将远程仓库下载到本地之后,接下来你可以拉一个新的分支,在这个分支上修改代码。 比如我现在打算给叉叉油 job 提一些代码,就创建了一个修改代码的分支,随意修改一些内容,然后提交代码。 这几步就不做过多介绍了,此时代码是提交到了自己的远程仓库里。如何将这些代码提交给叉叉 l drop 呢?这个时候就要用到另一个功能了。 pro request, 简称皮雅,可以把它理解为是想要把自己的代码合到对应仓库里的请求。 比如点开叉叉 l 照吧项目,可以看到目前有一百多个未关闭的 pr, 这些 pr 都是别人提给叉叉 l 照吧的代码。提交 pr 也很简单,当你把分支的代码提交到自己的仓库后,可以看到 get up 默认已经弹出了一条创建 pr 的框, 可以直接点击,也可以在 pr 中选择 new pro request, 效果是一样的。然后选择将哪个分支 合并到目标仓库,再填写一些必要的信息,这些代码就作为一个 pr 请求发过去了。如果框架作者认为你的代码能合到他项目里,他就会将这个 pr 合到对应的分支,你就成了给开元框架提供代码的人了。 这样一讲,是不是概念就清晰了呢?再说一个点, foc 下来的项目是当时代码的一个快照,那么如何更新呢?也很简单,三行命令就可以搞定。首先让自己本地的 get 项目关联上原来的仓库,然后 fetch 代码,接着模拟到自己的码册上即可。 这样原项目的所有提交都合并到本地了。以上就是本期视频的全部内容了,我是鱼仔,我们下期再见。

大家好,上一期视频有用户反馈就是完全看不懂,建议是把整个部署的过程都展示一下,今天就来补录一个视频,我们先来把一个 wet price 的项目部署到线上,首先我们来改一下它的名称,我的第一个 个人站点,我们现在修改之后直接提交,然后触发 gitlab 的一个自动化部署,把它推送到远程, 这个时候在这里就会自动触发他的一个自动化部署。他为什么会触发这个自动化部署呢? 就是我们在这个项目的根目录创建了一个 game level 杠 c i 的这个配置文件,然后有自动化部署的一个配置,就是你只要主分支触发一个提交,然后他就会进行 npm 输入,然后 npm run build, 他就会把它部署到 apple pages, 可以看到现在他已经部署成功了。我们来访问一下具体的一个页面,刷新一下, 刷新一下这个页面,我们可以看到这个就是我们刚才提交的一个内容,对不对?这里也是我在这篇文章里面 这一个部分讲解的一个内容,其实很简单,只要花两步就可以了,这里有项目的一个地址,大家可以实际去试一下。有些人可能不知道 vid price 是什么哈,像这个无忧三官网的话就是 vid price 做的。我们再来看一下怎么将 vid price 部署到二零零的 oss 这里我们在 oss 里面建了两个存储桶,一个是泰式的左幺幺点 com, 一个是泰式的左幺幺点 com 带,一个是正式,一个是测试环境,分别指向这个泰式的点左幺幺点 com 以及泰式的杠带点左幺幺点 com, 这是 跟 liveci 的一个配置,我们现在来演示一下,首先修改一下这个自定义软了测试环境,修改完成之后,我们进行一个提交,提交完成之后,我们再来看一下这里的一个 cicd 的一个情况, 可以看到这里的 update title 就是我们刚才提交的。我们这里分为两个环境,第一个的话就是部署生产环境的,第二个是部署测试环境的,我们现在先部署一下测试环境,点一下运行这里我是设置了一个手动触发部署,不是自动触发部署的,所以说需要在这里点一下, 可以看到他现在已经在部署。我们现在刷新一下这个哈,看他的标题,现在是自定义乱了对不对?等一下部署成功之后,他这里应该变成那个测试环境,他现在还在部署。我们先来看一下这个 ci 的一个具体的流程,这是两个 state 对不对?我们现在执行的是第二个就是这个 测试环境,那个部署,可以看到他现在已经部署成功了,当他部署成功之后,这里的话,这个第二个这个 job 带这个测试环境的话,他已经部署成功了。我们来看一下效果,刷一下 可以看到这里是演示测试环境,是 test 带五左幺幺点 com, 我们再来看一下正式环境 test 点左幺幺点 com, 可以看到这里是没有变的。 然后我们现在来部署一下正式环境,其实就是点点一下这里我们就可以部署一下正式环境。正式环境对应的这个 os 的存储桶就是这一个泰式的连座幺幺零 com 这个正式环境部署完成之后,我们再来看一下这里的一个效果, 这是正式环境泰式的连嘴二连靠,我们刷一下可以看到这里的话,他就会变成最新的一个内容了。我们再来演示一下怎么将无忧三的项目部署到腾讯的一个服务器。这里的话我们先通过这个 纯命的方式来部署,就是我本地的电脑直接部署到腾讯云,通过两条这个命令这里的话,我采用的是撕药的登录方式,比如说我现在要在我的电脑上面 登录到服务器 b, 所以说我要在我的服务器上面生成这个公要私要队,然后我把我本地的这个公要,也就是说这个文件里面的公要的内容,然后复制到腾讯服务器里面的这个授权的 k 这个文件里面 设置完成之后,我有访问权限之后,我就可以直接通过这个命令去执行服务器上面的一些命令。比如说我现在要查询服务器的一个 当前目录下的一点 text 的点文件,我查一下可以看到他说没有找到这个文件,我们在服务器上面也执行一下一点 txt, 可以看到他也是没有这个文件的。现在我们通 一条指令,在我们本地的电脑远程操作服务器去创建一个 tst 文件,套起的话他就是可以创建一个新的文件,创建成功之后我们再来查询,可以看到他就是有这个文件的, 我们再来在服务器上面执行,他现在是不是有文件了,不会再报说找不到这个文件了,是不是我们在这里可以执行命令的话, 当然你也可以把它换成,比如说那个 n p m 输入 n p m run build, 或者是 p m two 开启一个服务,就是任何跟部署有关的指令,你都是可以在这里实现的,对不对? 我们先来看怎么部署文件,把本地的文件部署到腾讯的服务器这里,我们先来部署这个测试环境的,就比如说这个呆默点 task, 点这个,这是部署在腾讯的一个服务器上面的,然后他是自定义软了,我们现在改一下, 改成本地 s c h 部署,现在是没有提交的哈,我本地 m p m 端 beauti 一下, 这是无忧三的项目,本地 build 的话,他会生成到这个 dist 这个目录。我们这里直接使用 scp 的命令,将本地的这个构建生成的 dist 目录里面的所有文件,然后 copy 到远程的这个服务器上面的 rot types 的 demo, 点左幺二零 com 这个目录里面执行, 可以看到他执行成功了,我们来刷新一下页面, 可以看到这里的话,就变成我们之前的本地 s s h 部署了,对不对?我们就是通过本地的这个 命令来直接执行部署这两条命令是非常重要的哈,下面的部署的话,基本上也是通过这两条命令实现的自动化部署,我们 再来看一下怎么在 intellectual 里面执行这个自动化部署。其实我们就是把本地的这个 npm on build 以及本地执行的这个 scp 放到了这个 intellible 的服务机上面,让它自动去执行,我们点一个按钮就可以,对不对?然后我们现在来执行一下这个, 首先我们再把它改一下,改成呃 different lab 自动化测试 就这样破解之后,我们再来看一下跟 lab 的一个 c i c d 里面的一个变化情况, 可以看到提交成功之后,这个 build 他直接可以开始构建了,部署的时间节点,我们来看一下这两个 state, 一个 stage 是用于这个构建的,然后一个 state 是用于部署的,这个部署的话又分两个,一个是主分制的,一个是 test, 我们 现在执行的就是这个泰式的这一个等他构建先走完,我们再走这个部署。到测试环节可以看到现在已经部署成功了。部署成功之后,我们再来刷新一下这个页面,可以看到,等一下 可以看到这里已经变成跟耐磨自动化测试呢,就是我们刚才的一个改动,后面的这个接口部署啊,然后还有这个自定义软了的一些安装啊,一些部署的一些这个配置这里我都有贴出来哈,大家可以直接拿过去直接用。 今天晚上内容有点长,大家可以先收藏一下,然后后面要用到 kidnap 自动化部署的时候,可以来这里查对应的一个配置,直接复制过去就可以直接用。今天的内容就到这里了,我们下个视频再见。

刚培训出来的编程小白们,当我们入职一家新公司的时候,老大会给我们一个项目代码的一个地址,比如说这个地址是有关于 get 意义的, 我们以给他一一为例,去演示下我们拿到这个地址如何去将代码拉取到本地,以及我们如何去提交代码,还有去合并解决相关的冲突。比如说这个时候老大给我们的一个项目链接地址是这个,这时候我们需要去拿取相关的代码,比如说我们在这里 就可以去选择这个相关的一个仓库地址,我们在这里复制下,然后回到我们的一个 i 调中,在这里我们有一个克隆,然后我们在这里可以去选择这个仓库地址, 然后将相关代码拉取到这个木的下面来,这里我们选择一下克隆,这里点击下,然后这里正在去进行加载,我们的仓库 这里等它加载完成之后,这样我们的一个代码就拉去下来了,然后老大就会给我们分配任务了,那这时我们就要去修改文件,然后进行提交了,比如说我在这里去在这个文件中去加了一个功能,比如说这个功能是有关于商品的开发, 当我们开发完成之后,我们就需要去提交代码到远程了,那这时候我们需要在右边在这里有一个勾勾符号,然后我们点击下, 这里就会弹出来我们的一个框框,然后这里是选择我们提交的一个信息,比如说这时候我们添加一个关于商品的功能 product, 然后我们就可以在这里右边去选择这个提交以及复习到远程仓库,然后我们点一下,在这里会让我们去确认复习到远程,然后我们点击下复习, 这样我们的一个代码就推送到远程去了,然后我们可以回到这个 kte 中,然后进行相关的一个查看,我们刷新一下,这是我们的一个提交日志,然后我们可以点击看一下, 这边是我们提交的一个功能呢,删除了一行,并且新增了这么一行代码,如果说旁边的同时开发了新的功能,那么我们就需要去拿取相应的代码了,点击这个下载符号,然后我们就可以去进行更新项目的代码了,我们这里选择默契,然后这里 ok, 那这里就会发现我们的代码已经成功更新下来了,但我这里是没有不同的。再者如果说,嗯,两个同事在同样的代码进行相关的修改,那这时候就会产生通知,那么我们来演示一下,我们在这个一的这个文件中,然后我们在右边 去进行编辑一下,我们去模拟测试一下,比如说有其他同事在远程中把这个代码给修改了,修改成三五五,然后我们在这里去提交一下,我们这里就随便写的信息吧,比如说叫 update, 然后我们这里去提交一下, 这样我们便模拟一个同事去在这行代码进行修改,然后我们在本地,比如说我们本地也在这个文件中, 然后我们在这里去进行同样的修改,说在这里把它修改为六六六。如果说你的这个功能写好了,那么我们首先要去拉取代码,也就是说将同事的代码先拉取下来,然后我们再去提交自己的代码, 要养成一个习惯,就说我们要先拉代码,然后再去提交代码,我们在这里先拉取代码,点击 ok, 然后这里正在加载中,这时候就会产生一个 冲突,在 i 调中就会弹出来这么一个框框,针对于我们这个 i 调工具还是比较智能的,比如说我们在本地,这是我自己的一个改变,是修改为了六六六,然后我们远程在右边就是远程的一个修改,修改成了三五五二, 然后最终的一个结果就是我说我们中间这行,中间这栏呢,我们可以选择这个箭头法进行一键的一个合并, 我们的一个冲突就解决了,比如说我们是选用左边的,如果说你嗯点错了,我们可以按下 ctrl z, 然后这样就撤回了。再者说如果说左边和右边,然后都不是你想要的,那么我们可以这样做,我们可以在这里中间直接修改,比如说修改成叉叉叉, 修改完成之后,也就说我们解决完冲突了,那这时候我们就需要在右下角去点击下这个 opla 标识,我们解决冲突,然后我们点击下,这样我们代码的冲突就解决完了,然后我们可以在右边去提交下我们的一个新代码,在这里我们将这个冲突给解决下,这是我们解决冲突,解决冲突,然后我们去提交下, 就是我们最终修改的一个内容,修改为了叉叉叉,那我们在这里同样的去提交以及复习到远程,那么我们再去复习一下, 这里就成功普及到了远程,然后我们再到我们的仓库中来刷新一下, 可以看到我们的内容就成功提交怪了。以上便是我们在公司中常见的提交代码,拉取代码以及冲突解决。

给大家演示一下,使用 get 命令啊,从这个代码编写到最终代码提交的本地仓库是一个怎样的过程?首先第一步,先初始化本地仓库 get, 然后呢是引力 初始化本地仓库初始化完成之后呢,看一看我们是否啊有我们的一个点 get 这样的一个目录, 有这个目录就表示我们的本地仓库已经出示化完毕。接下来呢,我们可以去工作区啊,也就是我们的 wox 被子去写我们的代码,比如说我们使用 v i 编辑器啊,然后呢去编辑一个文件啊,这个文件内容你就随便写了。 好,写完之后呢, esc 冒号 wc 保存并退出。那么这个时候呢,我们这个文件在工作区啊,先把它放到 get 的暂存区当中,怎么放上去? get, 有个命令叫艾的,然后 哈喽点加法写上,那么这个时候就放到暂存区,但是这个文件呢,他还没有放到本金库当中,怎么放到本金库 getmex 啊?然后哈喽点加法,那每次提交的时候建议加上注释,怎么加注释?杠 m 参数后面加上一个注释啊,比如叫 max, 然后妞饭,哈喽点知道吧?那么这个相当于是一个诸事啊,走一个,那么到此为止,哎,我们哎就表示把这个文件已经放到了我们本地仓库当中。

大家好,我是 night killer, 欢迎观看我的 night killer dewalbs 首渣视频开视频是 night killer dewalbs 首渣电子书的配套视频。在上一期视频我们学习的是 gelab 项目管理,今天我们学习的内容是多任务并行开发。 为什么要做这期视频呢?这是所有创业团队跟中小企业必经之路。其实并性开发并不复杂, 但对于创业团队跟中小企业来说,这是一件非常复杂的事情,因为在团队当中没有人参与过这样的开发。那么能不能从大型企业挖一个人过来就解决问题呢?这要看你挖过来的人 他是什么样的岗位,如果是一个基层工作岗位,那么他是执行者,他也不清楚上面是怎么管理的,也就是说他只见过猪跑,并没有吃过猪肉。 其实软件项目管理、并行开发这些就如同一层窗户纸,一捅就破。本期视频学习的内容是多任务并行开发, 要实现多任务平行开发,需要三点,第一点是任务的分解,第二点是提供配套环境,第三点就是分支的合并。任务分解就是讲项目化整为零,拆分成一个一个任务,然后只派到指定的人去执行。 认得夫的分解需要注意几点,就是叫尽可能的结偶,尽量避免交叉,要理清他项目之间的依赖关系,避免出现一些循环。 在项目分解当中遇到最大的问题就是项目的藕和跟依赖关系,说白了就是各项功能的前后开发顺序。 产品经理在设计产品的时候就可能会影响到任务的分解,例如 ui 交互跟业务逻辑的冲突,也就是说 ui 上的两个按钮点击顺序就有可能影响到任务。分解, 虽然都叫产品经理,但是产品经理也是分几个档次的,分别是战略型产品经理、业务型产品经理和功能型产品经理。而初创团队跟中小企业通常是功能型产品经理为主, 功能性产品经理都相对比较年轻,功能性产品经理通常是比较年轻,没有在这个行业当中做过,所以对业务不是很熟悉,所以就无法从宏观的角度去规划 产品,也就是理清他们之间的业务逻辑关系。同样,架构师我也把它分成了三个层次,分别是企业架构师、业务型架构师跟功能型架构师。跟产品一样,中小企业通常是以功能型架构师为主, 产品经理跟架构师的大局观这个观点在我的多维度架构视频当中谈到过,这里我就不读一遍了。 要实现并行开发,也就是多个任务同时进行,那么 我们就需要一套配套的软件跟硬件环境。配套的环境是指开发跟测试环境。我们以生产环境为例,最小化实力、最小化节点满足运行项目的环境要渐渐减少。环境之间的差异, 差异包括了软件环境、硬件环境、网络环境,还有资源的配置以及应用软件的安装配置差异。 需要多少环境,需要根据我们项目规模而定,通常我们至少有三个环境,分别是开发、测试跟生产。 如果项目稍微大一点,我们还会增加一个用户交付测试环境和功能分支测试环境, 每个环境又对应了版本库当中的对应分支。通过持续集成跟持续部署,我们只需要向相应的分支当中合并代码, 就可以完成环境的部署。例如我们向开发分支当中提交代码,就会自动部署到开发环境。测试分支是不允许提交代码的,只能用于合并。 测试分支的部署通常由测试人员手工部署,我们会在持续的集成当中设置一个按钮,点击一下,自动部署到测试分支。开发环境跟测试环境两台夫妻是放在办公室的, 用户交付,测试环境跟生产环境是放在云浮器上的病性开发,需要开发人员遵守严格的合并流程。我们会对分支做一些保护,就是有些分支是不允许提交代码的,只允许合并。 例如当前屏幕列出的五个分支,只有开发分支是允许提交代码的,其他分支都不允许直接提交代码。太个标签是只读的,他 只能被创建,不能被修改。最后讲一下功能分支,任务分为分解之后,就会分配给每个开发人员。开发人员进入一题,然后创建功能分支,将工程分支代码克隆到本地,然后进行开发工作,开发完毕以后进行提交。 提交之后,功能分支的部署是需要测试员手工部署的,因为开发分支是共用的,如果持续集成跟持续部署进行自动部署以后就会相互覆盖, 这是需要开发人员讲这个议题的。标签改为测试,并且只拍给测试人员。测试人员接受到这个任务之后,进入持续继承持续部署菜单,点击部署, 当流水线运行完成之后,该功能就被部署到了功能测试服务器。接下来就是紧张 测试工作了,当测试完成之后,如果有 bug 会打回给开发人员,如果没有 bug 就把它变为挂起的状态。 并性开发,我们会产生很多功能分支,开发完成之后就变成挂起的状态放在那里,当我们需要上线的时候,就通知开发人员将功能分支合并到开发分支进行一次集成测试。 测试过程仍然是发现 bug 就修复 bug, 如果测试通过的话,就将开发分支在合并到测试分支进行第二轮的测试。测试分支 ok 之后就是交付测试环境跟生长环境的升级了。 最后总结一下功能分支的操作步骤,首先创建议题分配给指定的开发人员,然后开发人员从开发分支创建功能分支, 获取功能分支的代码,然后进行开发提交。最后测试通过以后,将功能分支在合并到开发分支, 一切都完毕之后关闭题,下一期视频我们会重点演示分支的合并。 今天录视频比较晚,所以有点困,经常说话短路。关于病性开发,今天就先讲到这里,有什么问题可以给我,在评论区留言,喜欢我电子书跟视频的小伙伴请关注我,给我点赞转发,谢谢观看!

打开不丢的 s 编辑器,在头部菜单工具重选插件安装,然后安装这个插件, 然后要安装 pope set, 可以在百度搜索找到下载地址, 下面这个蓝色网址就是安装完成以后我们来操作一下吧。第一步,在胡豆的 x 编辑器左侧点击鼠标右键选择导入,从 jit 导入,把 s v n 地址粘贴上去, 点击确定, 填写 jit 账号和密码, 拉起成功喽, 我们修改个文件提交试试吧。 提交需要两步,一、在项目文件加点击右键选择 gt 提交。二、然 然后再托事推送一下 更新,只需要选择拉曲铺即可。

你知道如何打造一个类似于 get up 一样的代码管理系统吧?这个工具可以实现让你在内部网络构建 ge 思服,他就是 geta, 这是一个基于 get 在线代码仓库托管软件,你可以用 geta 自己搭购一件类似于 geta 一样的系统。 gela 不是一个提供代码托管、提交、审核和 问题跟踪代码管理平台,对于软件工程质量管理非常重要。版本分为 gla 社区版和企业版。他的服务构成包括金条外本服务器、日制文件管理、数据管理。酷,下载地址如下,赶紧点赞收藏吧!


我很好奇,就是你们每一次开发的新需求,然后等我们测试测完了之后,你们怎么把这些新需求的代码跟线上,行不行呀? 我很好奇这咋做的?其实,呃,对于我们开发来说啊,这个代码是用工具管理的,哎,叫 get, 基本上现在公司都用的 get。 然后呢?我们在公司内部呢,基本上会搭建一个自己的一个 get level, 一个仓库啊,我们比如说我们线上的代码, 他这个仓库里边,比如我们我们现在做这个 app, 对吧?他叫仓库名字,有个名字,那么仓库里边他会维护好几个这个分支。 就一个,比如我们线上的代码,他在就在马斯特分之上,就我们以前开发的代码,最新的代码他就在马斯特分之上。那我们这一次比如说啊,有 新的需求要做,对吧?那对于开发人员来说,先去马斯特分支上去切出来一个新的分支,这个你可以理解为就是我们把马斯特分支去扣赔一份啊,作为一个新的分支,然后我们在这个新的分支的基础上,在他上去做新的工作的开发,然后我们开发完一层厚额去 提侧啊,你们测试现在这个分针测试分针去测试,测试完没有确保没有任何问题的时候,我们再把这个测试分支去合并到这个 mass 分支上, 合并了马斯的分支上,然后用马斯分支来发布上线,那么基本上是这么一个流程。但是这是如果说是你一个人做的这个项目的话,那你就自己拉一个分支,自己开发自己的。嗯,但是 get 他就是为了方便于团队, 比如说你有多个人啊?你,你这次有好多需求,对吧?就好多需求,不同的人做不同模块,比如说我就做一个啊,我就做一个新人入口。对,对,其他人做其他的,那大家都是开始从这个 mass 分支去切出来各自自己的分支。比如说我切出一个分支 是做我的新人专享,对不对?那其他的同事他切出一个分支,他是做他的购物车,对,那大家都是互相互相这个在自己的分支上去开发,那么到最后大家合并起来, 把各自啊开发的分支合并起来,对不对?然后再做测试完了以后再把测试分支再合并到这个地方线上位置 啊。呃,其实不同的公司这个具体的要求不太一样,但是大体的这个过程是这样的,就反正就是在不同的分支去维护着不同的代码,所以说 我们这次的需求呢?他永远是建立在以前的这个代码的基础上。所以说我们开发的功能就是在以前的功能上去增加吗?嗯,对不对?但是为了让我们,呃这个代码保持最新,所以我们测试完了以后,我们需要把我们这个代码怎样合并到骂死的分支上, 让 max 分支永远保持最新的线上的版本啊?那就相当于是合并上去之后就是新功能,然后增加,然后老功能不变。 那肯定要这样的,你新功能是在老的基础上有,有可能你是老的一点都没变,你是在里边去增加功能,有可能是你还把老的部分去删除优化,对不对?然后还有添加新的,然后这个代码他会自动去去做一个合并。对,然后你去对,你再 上线的时候,你又把这个 mass 分支相当于是更新了一遍,他又保持最新的,如果下一次又有需求的话,我们又从 mass 分支来切出来一个,在他的基础上又做,明白吗?嗯,明白了这么一个过程,对。

这块我讲一下那个怎么去提交那个代码。呃,以 rest, 以 rest 那个呃项目为例子, 嗯, 建立一个。我一般是先先是嗯,一般是先在这个 get hover 上直接点这个建立,你有一个新的仓库,然后给他一个名字, 然后好了。然后因为已经配置了 s, s, h, 然后点这个克隆到的这个本地,嗯,克隆下来, ok, 现在它的 warning 是一个 m emperor day。 然后我们进去。 嗯,好, ok, 现在是这样了。然后然后我进行创建一个 rust 的 hello word 的一个项目。 对,你直接就这样创建就 ok。 嗯, 看好像是啊,没有。 ok。 直接创建完之后我们进入直接你直接就是开播 run, ok, 可以。然后我们看到我已经创建好了。然后你 get 的话,你要查询一下,你现在是已经创建这么一个项目,就是还没有提交的,你新创有些代码了。然后我们要做一下 get a, d, d, 就是要把它加到那个缓冲区,然后你再 get status 的时候会看见创建这么多。对他现在有很多人想把他给的他也加进去了,那我不能让他加,他给他了,我得 加一个东西,然后我要不能让他把这个加进去,把他给他这个生成的这个文件加进去。然后我再 搁到 data, 然后搁到 a, b 还是有。那我先删一下,嗯, ok, 可以看到我要提交的就这就这几个文件。然后呢,我再进行 get commit, 然后这个双引号引起来的,就是你在这一次提交,也可以要添加一些个这个提交的消息,然后这就是隐匿的就 ok 了。然后你再就是 push, 然后就是提交到这个仓库里面去,可以,现在已经提交上去了。我们打开一下这个网页,刷新一下, ok, 可以看,已经有了。点开它看一下。点开它看一看就行了。 我们点开看一下, ok, 已经提示上来了。对,整体就是这么一个样子。 然后就是这样去提交代码。

我们说完了一个就是本地项目怎么来同步我们的一个远程项目的一个仓库, 就做这几步就好了。这个是发生在什么情况下呢?就好像如果你公你,你那个项目还没有在地上面,还没有创建仓库的,可是我已经开始写代码了,这种情况下就已经写好一部分代码,可是你的项目组长才刚才会帮你 创建创建那个远程仓库,这时候是不是就需要你同步你本地的一个项目啊?因为本地项目是不是还没有受定的一个管理啊? 然后然后你的一个远程仓库创建的时间是不是比较厚一点啊?所以你就用下面这一串的命令来执行就好了,基本上就不会有问题。 然后我们接下来要说的一个东西就是分支分支,我们上面一直用的一个拉丝筒就是一个分支,就是分支, 通常巴斯特是用来做什么?其实就是生产环境的一个分子,生产环境分生 打南京的一个粉丝,就是说你发布到线上的,可以发布到线上,可以上线, 这一个分支的代码是可以上线的。然后我们之前创建项目的时候,是不是在马云上面看看过一个什么 d e v i op, 那个 d v e l o p 得二楼或者是 bv, 这两个分支有什么作用啊?它其实就是我们的一个开发环境的一个分支。 开发环境,呃,总的一个粉丝,总的一个粉丝,因为为什么说他是总的一个粉丝呢?因为 你开发一个项目或者是开发某一个功能的时候,可能有四五个前端或者三四个前端一起做,是不是?然后他们并不会同时在带分支里面写代码,他们会开自己的一个分支出来。在哪一个分支 开出来了,都是依赖低于分支低于分支来开,自己开一个代码,开相对应的分支信息,是吧?好像我 第一个人要做登录功能的,我就在 dev 的这一个分支的基础上开一条代码,呃,开一条分支出来叫 o l o g i m 落选, 然后第二个我好像要做一个注册功能的第二个人,我也在 dvv 这个分支基础上开一个啊,一区的这样子的一个分支出来,是吧?就名字是可以随便起吗?这一个分支名字, 然后第三个人好像我要做一个首页的,我也从 dvc 分支开一条分支,叫 ids, 就类似的如此类推。如果你有很多功能,那你就继续往下开就好了。那以什么为?从哪里开出来?都是以 dev 这个分支基础上开一个分支出来, 为什么都要这样子做呢?因为你这一个,我刚刚说啊,你做的这一功能是 一起上线的是不是?然后到时候是一起发布的,然后你都是属于同一个版本里面要做的功能,所以你都是要用用一个统一的分子。 可是如果你不创建分支,大家都在这个低于分支上面做的话,就会有问题啊,到时候我在这个这个人 登录,做登录的,这一个人做完了做登录的,然后他直接把代码写在第一页上面,然后这一个写注册的,注册的那个写到一半, 然后就把代码提交到低于一分之上面去。突然有一天你的那个老大跟你说,哦,我现在不要注册,我只要只要那个登录,登录的那部分代码,然后上线,那你是不是要把原来注册的那部分功能从低于里面又删除掉,是不是很不好?这样子的话, 所以他开开分支出来是方便你管理一块块的小功能,方便你管理的可以方便管理我们自己的一个代码的项目越大,你开的分支越多,可能你看到一个项目有二三十条分支是很正常的。我之前 应该有给大家看过那一个六的那一个,呃,分支有没有看过?没有看过是吧?我给大家看一下。刷分支这里的话,就可以看一下这个六在句号里面他六的这一个仓库,然后点开 怎么来看分支呢?你就看这一个半去这个地方,他默认显示的是低于这一条分支的,然后你看半去这里 看一下,他都是分子,对应的是不同版本的一些分子,你看他是不是有一个巴斯塔,也有巴斯塔,这个就是线上就他真正可以上线的那一个分子,然后还有 其他的,好像他这一个库做了什么东西,做了什么东西,然后他就开一个分支的名称出来,好像这一个什么这个什么 pe i f, 然后很 qq, 很 qq, 就计算吗?是吧? 然后他可能就是计算这一个,这一个是相关的吧,然后他就会对应的开一条出来,然后还有什么之前说过的一个耗费水说过是什么?对,就修复了,就修复一些线上的小问题,你就可以开一条分支出来,专门是 救护。然后我们往下往上看,你会看到这这几个, 这几个就比较经典了,他其实这几个就是一些很久以前的一个代码了,他是零点一点零的那个版本,六零点一点零的那个版本应该是很久了,你点一下,点一下二分之,你的代码会切切回去,你看一下 六年前的,六年前的代码,这一个五六年前啊,这一个是因为他那时候就已经发布了那一个零点一零的那个版本, 大家可以看到他这里是不是很多分子啊?在我们项目里面也是一样,会开出很多个分子出来,然后不同 名字代表不同的意思。就好像我刚刚说的,开一个什么落嘴的那一个分支出来,就做登陆的,就开一个 ig 的那一个就做注册的一样的,他就不同的英文就代表不同的意思。这一个分支是用来做什么功能的?好像我们 现在我们回到我们第二天的那个代码这里,现在我们在这个位置打开一个 bbs, 打开,我现在是不是在一个八十的位置啊? 然后我现在这一份是第二天的代码,是吧?我这应该是写第二天的,可是我第一天的代码都在,是不是? 这不应该啊?然后我我现在要把它执行,是第二天的怎么做啊?就结合我们分支的话,这里可以把它先先怎么做去啊? 创建一个分支,名称叫做零二,缺二少一个,很像杠一这一句话是什么意思呢?缺二就切换分支的意思, 千万分之,然后零二这个分支在不在我们这个仓库里面?不在,所以我这里杠 b 就创建的意思,创建一条新的分支,这个 b 代表什么意思呢?就是半曲的意思, 就分支的意思。这我写一下这个点啊,谁举一次可以忽悠点啊?就切换 这个就切换,然后杠比,然后具体的一个分支,这也是零二,零二这个分支 不存在,零二分之不存在,所以,呃,要加上杠 b 杠 b 这个东西就是 b 代表什么意思呢?就 b 啊, a a h 就分支的意思。这句话合起来理解就是 切换是其实是先创建了,先创建一个零二分支,并且切换过去,因为不存在吗?是不是?如果存在的分支怎么怎么弄?好像我现在回收吧,先按回收变化了吧,看到没有? 他从原来的巴斯特分支切换成为零二的这一个分支,是吧?现在就变成零二了。然后假设我现在是不是巴斯特已经存在了,巴士的分支已经存在,那如果我要切换到回马斯坦怎么做? 切换切啊,然后不用杠逼切回去,你会看,看到这里没有出现 a 网跟飞走的话是正常的, 然后并且你看一下是不是切换过来了。这一句话跟上面的有什么区别啊?是不是少了一个杠逼啊? 降低是因为你零二不存在我才需要的,如果存在的话是不需要的。切换分支,这也是切换分支的话,直接 直接就可以用一个电,然后是全奥,然后具体的一个分子名已经存 分支笔上,然后这个是切换并创建 一个不存在的分子,上面这一个多了一个功能,所以他多要加多一个参数,就是我们的钢笔,这个可以记得住吗?现在,然后我还签 换,切换完以后,现在我再起从巴斯特切换到零二,要怎么做?要不要加杠冰?不要不要, 因为我们的零二已经被创建出来了,是不是?对,缺二,然后是零二,你就输入那个分之名就好了,按一下回收,然后就告诉你已经切换回来了,切换成不成功你就可以在这里看就可以了。在这个位置是不是从八十分之切到零二, 然后我们创创建完那个分子以后,这里是不是应该显示的是只有零二代吗?可是现在是不是有一个零一在这里啊?我们怎么做?把这个直接上掉 零一了,是不是被我删掉,然后在这个目录下面是不是没有东西啊?我在这里新建一个文件夹,写个零二,然后这里零二里面我先创建一个吧,简单创建一个文件叫做 一点开始了,好不好?先这样子,然后这里是不是平二的只有第二天的一个代码了吧?然后这里这里 看一下文件状态是不是被我删掉了?在零二基础上你要看清楚啊,我的删除操作是在零二那一个分支做的三,然后你看到这一个是不是被删除啊? 然后我现在要把它同步一下。同步怎么做啊?先按是不是?然后按完要做口令操作,口令,然后是删除第一天代码是不是? 然后继续,不许,不许到哪里去哇?哎?是不是远程仓库这一个代表的?然后我要获取到 到哪一个分支?对,零二,因为你在零二的基础上是不是所有插座都是零二的?那你就提交回零二就好,不许上去, 然后你这里会看到他有一个这样子的一个东西叫 music, 因为对于远程分支来说是不是一开始是没有了? 没有零二的?然后我们提交上去以后,他远程分支就创建了一个零二分支出来,我们来看一下,好不好?在马云这个位置,然后在,呃,在另外一个仓库里面,我在另外一个仓库 就放大把的那一个,哎,怎么这么卡?这里是不是没有看到我 刚刚的代码?是不是零一还在啊?因为你在什么分支啊?马斯塔分支,马斯塔分支是没有做过任何修改的,我做修改的都是在零二那一条分支,是不是 你点开这个零二点开是不是没有零一那个文件夹啊?只有零二的是不是?零二里面是不是我刚刚新加一个进去啊? 所以这一个跟零跟巴斯特是完全不一样的代码是不是完全不一样?我开一个新的分支,专门是放我零二的代码的。好,我们来新建一个,大家来动手新建一个。

就刚刚有同学遇到过他就遇到了,他提交了,提交了,是不是抗病,抗病干呀?这一句话是没有写错的,是不是?看一下是不是抗病,然后干干干。就是说,呃,后面加一个提示,是不是? 然后他就会告诉你,他说你这个他就给提示出来了,告诉告诉,告诉给你,究竟是谁忽悠啊? 对,然后他就他其实也会提示你怎么做,他就跑一下,这这两句命令要分别跑。第一句命令是配置什么东西呢?配置一个全局的邮箱地址, 全局的一个邮箱地址,然后这一个你写一个你自己的邮箱名字就好,不故意 一定说一定要马云的那一个,你写你自己用的一个邮箱就可以了。然后下面的这一句话的话就是配置一个全局的名字, 全局的名字我告诉大家,这一个会出现在哪里呢?会出现在我给大家看一下出现在哪个位置呢?这里我刚刚是不是提交过?我这台机之前有老师配置过,是不是?所以这个名字就是他的名字了,并不是我的名字, 对,是不是?哈哈,这是他的名字啊,我现在是用了他的名字来提交,最好还是改成是自己的英文名来提交吧。简单的,这个其实不麻烦的,他已经告诉你怎么做了,你就只要一句命令,这一句命令后面的这个 是不是啊?这个双引号里面的内容啊?换成是自己的邮箱,然后只按回车执行一下这一句话,然后就配置好了,这一个就配置好了,然后另外一句话你就复制一下这一句话,然后把双引号里面的这一个 uon 内改成是你自己的一个英文名,然后按回车就可以了, 就这两句站着,我再说几分钟,这里就刚刚我用这个呃,本机的,然后一个用户了,其实这一个用户名可不可以改也是可以改的,就用刚刚这一句命令就可以改这个, 重新配置一下那个用户名就可以改改掉那个名字了,重新配置一下,只是我,我不不配置啊,我就用它吧,就用它吧。然后 然后你刚刚提交我们是不是有一句命令叫做爹肯定干 m 这一句,然后后面不是有一个加一个什么单引号,然后后面后面写的这些内容在哪里可以看啊? 是在我们的这一个马云上面,然后点击这里是不是有两次提交这一个?两次提交你点进去, 点进去以后你就可以看到我刚刚的那一个提交前面他就是标记里这一只提交的一个那个乱码这一个不用管他这一个。然后还有这一个的话,写写前面这一个有一个特性的名字叫做 come on id, 就标明你这一次提交的一个 id, 然后面这一个就是我们杠 m 单引号写的内容, 就是不是可以在这里看的,就说你下你这个项目如果越来越多,越来越多,突然有一天你想看回原来的那个原始版本的二代码的话,你就可以根据这一个提示信息来看回来,然后他这里还可以根据是谁 提交的,就刚刚我是不是用这个用户名提交的,然后提交在什什么时间点提交的,都可以在这里看到。也就是说你只要做一点点小修改,是不是你,你引发的这个 bug 的话都可以在这里放,这都可以在这里找到,找到了 比赛公司里面写了个发表,然后到时候你项目的大老大突然啊发现了这个发表,想找哪一个人,他就进来这里,嗯,看一下是谁改动了那个文件,然后就发现了原来是你,是吧? 所以我们肯定干 m 后面加的那个单引号是有用的,是在这里可以看到你这一次做了什么东西 用来标记我们这一次肯定的,我们来简单的回顾一下这一个,我画个图吧,好不好?我简单画个图,让大家深刻一点,理解深刻一点。就刚刚我们的印的一个流程,其实就是三块了,三块东西, 三块东西。我们这一个这里的话就是本地仓库,然后这一个的话就是我们的一个原厂仓库,然后他 其里面还有一个是叫做占存。呃,就是我们的一个本地,本地的一个提交记录,本地的一个提交记录,好像我现在在本地仓库,在本地仓库 修改了一个文件,好像我现在在本地仓库修改了一个文件,然后我要把这个文件,把这个文件提交到远程,远程仓库 是不是提交到我们的这一个产物就是这个位置,是吧?是吧?他要怎么做?要经历什么东西啊?首先第一步他要做什么东西? 对,第二执行这一句命令,把你修改的代码提交到我们的一个修改的代码,都提交到暂存区上面去, 然后提交到这一个战城区里面,我们要确定一下他的一个是不是可以看一下他的文件状态啊,如果要查看文件状态要怎么做?然后 s t a g us 是不是? 如果你没有改动本地仓库的文件,那你执行这一句话是没有一个文件可以显示出来的,没有一个文件可以显示出来的,也就是说在这个, 然后你如果有改动过,然后你输入这一句命令的话,都可以看到你改动过的是哪一些文件。 然后第三步我现在要继续提交到一个本地记录,相当于怎么做啊?口令是不是口令干 m? 然后后面的这里就是,呃具体的一些提交信息啊,提交信息你可以在你的一个远程仓库那个网站上面去看,这个就是孔明。然后其实就是 唱这样一个本地提交记录,他其实就是相当于 创建了一个本地企标记录,是不是它的作用?然后你其实这里面刚刚所说的,只要你执行了,执行了定口令以后就这一步执行定,然后是口令, 执行禁口令以后,他就会在本地的这个几条记录以为里面创建一条新的记录, 你这里本地就有一条新的提交记录啊。然后如果我想把本地的这一个文文件同步到就本地的这个提交记录同 铺到我们的一个远程仓库的话要怎么做?对, 然后是获取,获取到哪一个远程,哪一个远程仓库是不是 offig i a? 然后具体的一个具体的分支名称 不一定是巴斯特的,如果我穿这几条分另外的分支出来,是不是就另外的分支明伤?所以就是这样子一个过程执行这个更肯定就是说把你刚刚修改的先提交到战争区, 然后再执行。这一句话的意思就考虑就是可以把战城区里面的东西 创建一个本地的提交记录,创建到本地,然后他会在本地创建一个提交记录,然后他,他每一条提交记录都有 一个肯定 id, 就刚刚我们在马云看到的那一个 id, 然后创建创建了一个新的 记录以后,下一步我要把这一个提交记录提交到远程分支的话,就直接这一句话,并获取获取到远程的一个分支信息上面去。
![一对一教Git提交代码[强][强][强] 内卷到底#软件测试 #前途似锦](https://p3-pc-sign.douyinpic.com/tos-cn-p-0015/oMB5jnkb7KD8QaBMCentSFeecbgWAAHENE4iIB~tplv-dy-resize-origshort-autoq-75:330.jpeg?lk3s=138a59ce&x-expires=2086927200&x-signature=did1tMZDhk7TPGvpYXmomDsFgHs%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=cover&biz_tag=pcweb_cover&l=2026022014290919A4DECDB4470EA3CF02)

关于项目开发的重要概念想要把代码提交到 guitar, 一定要理解这几个重要的概念。首先是仓库与 positive 仓库分为远程仓 仓库和本地仓库。 guitar 上的仓库是远程仓库,而程序员通过 kitty 软件说实话,代码时的仓库为本地仓库。代码从本地仓库代码第一次提交到新建的远程仓库,需要使用以下三行命令。其次是 commit 提交的概念。 kitty 软件把本地项目分成了工作区、暂存区和本地仓库三个区域。代码是从 工作区生产,然后通过 gift at 命令搬运到再存区,再通过 git cummy 命令存放至本地仓库。而代码要从本地仓库提交到 guitar 远程仓库,就需要上面提过的三行命令。第三是 branch 分支的概念,分支可以根据不同的需求开辟不同的分支。打比方,一篇文章分为开头、中间和结尾,每个人负责 一个部分,最后把三个部分组成起来,就变成一篇完整的文章。他的好处是可以并行开发,并对代码进行了隔离。觉得有用的同时点赞收藏一下吧!