粉丝2.7万获赞25.7万

你可能会遇到这种情况,你给老师、同事或甲方发了一个文件,他说再改一下,你就改了,再发过去,然后再改再发。等十个版本后,他回复你一句,还是第一版吧,哈哈。 然而当你打开文件,却发现,哎,第一版是什么样的崩溃?从此以后,你就养成了一个习惯,文件一点零,二点零、三点零,修改版,最终版,最终修改版,打死也不改版,打死也不改修改版,打死也不改最终版,等等。 哈哈,是不是很烦?单个文件还能这么将就,但如果是几十个几百个文件呢?绝对是地域级难度。于是 get 就出现了一个开源的分布式版本控制系统。当你每次修改很多文件提交后, 他都会自动创建一个项目版本,你可以通过他看到每个版本不同文件的不同差异,也可以随时回退到某个提交时的状态。最大的好处是,其他人也可以同时修改复制一份过去,改完发给你会自动合并修改的部分文件。 是不是很方便?我们来演示一下。首先要求你有 vs q 的和 get, 我在边窗环境配置内结讲过没有的赶紧去看一下,按照说明下载,我这里默认你已经安装好 get 了。 先用 vs 扣的打开一个电脑上的文件夹,然后创建一个 test 点, txt 文件, test 就是测试的意思, txt 就是文本文件,看小说的应该都知道,文件里面写内容为零点一。再来新建一个终端, 这就是电脑的命令式界面。在图形界面操作出来前,以前的老电脑都是用这个黑框框操作电脑的 pwd 就是显示当前终端绘画所在的目录位置,可以看到是地盘的二一零一目录,对吧? 然后 ls 是显示当前目录下的所有文件,可以看到有刚刚创建的 test 点 txt 文件。 cd 是切换目录,不免跟路进两个点是上一集目录明是进入下一集,这期知道这三个命令就行,多练一下 认终端,去逛逛你的电脑,其他的命令我们以后再学,感兴趣的可以自行搜索,提前了解好。我们看 git, 先用 getversion 输出一下 get 版本号,确认你是否已经安装 get, 如果有显示版本号,则说明你已经安装好了。然后我们设置一下自己的昵称和邮箱, config 是配置的意思,刚刚格拉伯是全局的意思,优则是用户内幕是昵称妙式邮箱。大家一定要严格,每一个空格和标点符号 一定要用英文标点符号,双引号里面的内容你替换成你自己的就行。我们在当前目录输入 get 以内特,以内特就是初始化单词,就会在当前目录初始化创建一个点 get 隐藏文件夹, 这个文件夹里会保存我们文件的每个 get 版本记录和变化。出手画之后,其实文件还没有被记录,我们要使用命令 get a 的把文件加进 get 版本控制 系统中, ad 就是添加的单词,命令后面要跟文件名,比如这样 get ad test 点 txt, 就把这个测试 txt 加进去了。那如果文件比较多怎么办?一个一个添加太麻烦了。 就可以使用 get 爱的点,这里点号代表当前目录的全部文件,添加进去之后, get 只是暂时保存,还不会保存提交记录,我们还要使用 getcome 的命令。 cmeter 的翻译就是提交,可以把刚才暂时保存的变更提交固定成一个版本。 getcome 的试一下,会打开一个叫威姆的终端编辑器,让你写提交说明。 最后所有新手在这一步都会踩坑,因为威猛的操作比较反人类,打开威猛的时候默认是不能写东西的,你要按 a 或者 i 进入编辑模式,然后写几个字的说明,我们就写第一次提交,然后切记先按 e, s, c 退出键退出编辑模式,然后再输入英文冒号,注意是英文状态的冒号, wq 两个字母代表保存并退出,左下角就是命令显示, 输入后按回车才可以完成编辑。退出到终端目录可以看到显示了提示。一个文件改变了一行新增 get 都是按行来对比文件不同的就有两种情况,新增删除,如果是同一行的修改,那就是同时删除一行,新增一行。 好,新手只需要知道这三步就行了,其他的遇到再查,本次提交就完成了。 get 会保存这次提交的文件数据,我们用 getlog 命令看一下 提交信息, log 的翻译就是日制,你的每次提交 get 都会记录日制信息,这个命令可以显示出来,我们看日制格式。 comet 提交后面一大段字符,他是这次提交的随机 id, 作为唯一标识, 奥赛是作者的英文单词,就是你刚刚设置的昵称和邮箱带,它是提交的日期,在下面就是刚刚写的提交说明了, 然后我们再来修改一下文件,把内容改成为零点二 sq 的自带提示,你现在那个文件会显示绿色,修改一个文件会显示橙色,表示他和上一次提交的数据不一样。再来执行一遍 get a 的点, 这次我们试一下添加所有文件,然后 getcome 的杠 m, 呃,双引号第二次提交,哎,这里我 用了杠 m 空格双引号命令。这是写提交说明的简化版操作,他就会跳过 vim 编辑,大部分人都会用这种方式写提交说明给他 log 看一下没问题。最新的在最上面再来写一个 v 零点三。同样执行一遍 get a 的点, get cme 的杠 m fix 括号 test, 冒号 change content。 这次提交是规范了一下提交说明,这个只是一个分格规范,不是硬性要求的,目的就是为了让其他人一目了然你的版本修改内容。比如最开头一个 fix 就是修复的英文单词, 后面一个括号写上修复的文件或模块冒好,后面写修复了啥,颤着康腾的翻译一下就是改变内容。就是如果你要参与国际 项目,那么一个规范的提交信息和英文是必要的。还有一些规范词,你可以搜一下 geek me 的分格,自行了解自己项目无所谓,自己能看懂就行。其实现在很多人也不用中断来操作了。 vs 扣的自带界面版的 get 操作,我们写一个零点四, 然后左边可以看到有一个文件改动的提示。点一下这个修改的文件,可以看到对比视图,左侧是上一次 come 的内容, 右侧是目前的内容,上面有个对号的按钮,点一下提示,我们没有可以卡密特的赞存文件,是否赞同,所有更改点试就行,他就帮你执行 gay 的和给的卡密特了。 然后你在上面输入一下 come 的消息,也就是说明按回车就 come 的完成了。给他 logo 一下,可以看到信息 vs 的自带所有基本操作高级的功能。你可以安装一个 get history different 插件,可以看到所有历史提交,可以对比文件前后的区别等等。 get 有很多功能,但是想要学会他们看视频文章是没有用的,这个必须在你实际工作中才能学会。去菜鸟看一看所有功能,具体的用的时候再查吧。 那如果我想回退到某个版本怎么弄?首先 getlog, 看一下这几次的提交,复制一下某一次的卡密塔 id, 我这里复制第一次的提交 id, 然后输入 get reset 刚刚哈的 commy 台 d 就可以回退到这次提交时的状态了。可以看到文件内容变成零点一了。 getlog 一下也发现没有,后面的 比赛的翻译一下就是重置的意思,刚刚哈的是重置的模式,是硬重置,另外还有 soft 模式和默认的 mixt 模式,大家自行搜索了解。 但是瑞赛的不仅回退了,也把后面的清空了。我们想要在不同版本中切换怎么办?这时候就可以用分支 branch, 顾名思义,分支就是把当前版本复制一份。 你可以在 committee 第二次的时候用 gete branch 零点二命令创建一个零点二分之 gate commit 第三次的时候创建一个零点三分之 第四次的时候还是在主分支上, 然后用 check out 命令不断切换分支,可以看到可以随时变更。 奔驰的作用还不仅仅是切换版本,更重要的是你可以在主流上继续写代码,也可以在支流上同时写,然后某一天把这两条分支运跟墨制合并在一起。你可能会说,这不是多此一举吗?一个人当然作用不大,这主要是用于团队写作。 一个团队开发项目离不开分支,比如说我们项目现在的主分支是一点零版本,然后一点一版本要添加五个新功能,我就把这五个功能分配 可以给五个小伙伴,他们就在一点零版本上不让吃出去一个自己的版本分支就是命名为功能叉叉叉啊,然后五个人同时开发,到时间后,我在主分支上把他们五个人的五个分支都末制过来,合并在一起 再提交,并使用 gtag 打标签,生成一点一版本。团队开发互不影响,但又可以同时协作。 举个形象点的例子,这是一个 word 文件,我列了一二三四五五个小标题,让五个人同时写这个文档,他们各自都复制了一份到自己的电脑上,这就叫分支 文档,命名为自己的功能名,然后每个人写完自己的段落后再发给我。我打开每个文档,复制他们写的内容,粘贴到主文档中,依次粘贴完 南城就叫墨纸合并,最后另存为一点一文档,就是 come 或者踏个。这样一解释,大家应该懂了吧。 那么团队协作肯定不能在同一个电脑上,这时候就需要找一个服务器搭建一个 get 仓库服务。自己搭建也不难,有 getlab 之类的开源库,可以做企业私有服务, 但是大部分人没一个条件,或者就是懒得搭建,那么就可以使用 gtop 或者 gt e 这种公共的 get 仓库,其实说白了他们就是是个符合 get 操作的网盘,网盘大家应该懂吧, 我们来 get hub, 前面让大家注册了,不多说,点右上角加号 new repository 啊,创建一个仓库,起个名字,选择归宿,你们可以不用变,我就选归宿,在远道组织选择 party, 可公开 你私人的项目,可以选 private 私有不公开仓库。点下面可瑞特创建,进入后会有教你出示化的设置,我们就按照他的指引来 上面的以内特艾特卡米特我们都知道了,这里我复制一个 read me, 点 md 文件过来,这个上期说了是项目的介绍文档,艾特一下,再卡密特一下。 接下来就和下面的一样,三个命令,第一个 get branch 杠,大写 m 啊命,意思就是创建一个命分支,并把主分支切换为命。 第二个 get remote 爱的 origin, 一个你的仓库地址链接,意思就是添加一个远程仓库地址,相当于给这个 get 项目设置一个网盘地址,这样他就知道要上传 传到哪里了。第三个 get push 杠 u orange mean push 就是推送上传到网盘啊,也就是 get up 完成,然后会提示你输入用户名和密码,你就输入 get up 的邮箱和密码就可以了, 终端会输出上传信息,完成后来网页这边刷新一下,可以看到上传成功。然后我来教你们怎么参与开发开源项目,我这个仓库是帕布里克的,你们就可以参与进来。 首先你来我这个项目的地址,然后点击右上角的 folk, 就相当于把我的代码库复制到你的账号里面了,类似于不让你吃,当然了,你也可以再点个死哒,给你的第一个开元项目点个赞,收藏一下,然后右上角回到自己的仓库,可以看到已经 复制过来了,这就是元岛创建的项目,在个人账号下的 branch, 点这个 code, 复制一下你仓库的 https 链接,然后你在自己电脑上找个文件夹,用 vs code 打开新建终端,输入 gate clown, 你的仓库链接空格点号,也就是英文的句号。这个命令叫克隆,克隆人知道吧,就是把网盘上的仓库克隆到本地电脑,如果失败的话多试几次,网络问题你懂得。看我上期的解决方案, 可以看到我已经克隆下来了,但是现在这个是基于你自己的仓库的,使用 get remote 杠 v 命令,可以看到只有你自己仓库的链接,这时候我们再去原道的仓库复制一下,像 我们的链接回到本地,用 get remote add upstream 链接添加进去,这个就是添加上游代码库的命令,再 remote 看一下,有了。 如果你要给别人加功能,可以先创建一个分支,我们使用 get check out 杠币康文昌来创建并切换进入康文昌的分支。 现在我们创建了一个文件夹, members 伙伴啊,你们不用创建,然后再创建一个 json 文件吧,我们唱点 json, 里面写一个 json 对象,内蒙式昵称 url 地址是个人网站保存, 拿标准流程过一遍, get it, 点 get commit gun m, 然后 add 括号 member 冒号, ctrl get push 一下, 好,回到自己的仓库,可以看到已经有这个分支了, 这时候我们就来爱丽丽的仓库点这个 pose 次拉取请求,简称 pr, 进去后点六新建 pr, 这里 bus 就是根源选择 r 一零一的命分支, ctrl 就是比较选择你自己刚刚创建的分支,选择后如果选 是绿色对号, apple tomas 是可以合并的意思,那么你就填写 pr 信息标题和内容,点右下角 create 创建 pr, 你就提交成功了。 之后你可以在评论区来发个评论,提醒我一下,我就会去操作合并进驻项目,你的第一次开源贡献就完成了。 如果没有显示绿色对号,那可能就是在你写代码的时候,我提交了新的 comet, 导致版本不一致。这时候你就需要先更新一下本地版本,执行 getfix upstream, 从上游更新一下最新代码,然后执行 good mordge abs dreme, 把远程的最新代码合并到自己的分支中,再执行 goodboost 推送上去,这时候快点去提交 片就可以了。好,那么 get gtop 的入门就完成了。同样的流程也适用于 gete 和 getlebe。 本期的内容比较抽象,但是如果你要找工作,或者是和别人协作开发项目,也或是参与开人项目,这个东西是必须要学的, 你不会 get 人家要你干啥?让给代码文件添乱是不?哈哈,所以啊,大家一定要实践实践,实践练的多了就会了,我把第一次如何完成已经教给你了,剩下的你就需要练习练习练习。 最后,本期这种枯燥内容数据,哎,就是很差,但他又极其重要,我必须负责教给你们,不能像营销号一样啊,难得不告诉你,就给你看看轻松炫酷的,对吧?所以既然大家都看到这里了,希望能三连支持一下。本期的作业 就是提交你的第一次开源贡献,第一次 pr, 一定要练习啊!下期我们把元导的零点二版本持续升级,从实战中学习,拜拜。

大家好,欢迎来到一起学 ai。 嗯,今天看一下一点三 gate l f s 上传大文件 啊,这个呢是如果我的文件超过了一百 mb, 我就要使用这个 lfs 来上传。怎么上传呢?呃, 咱们先来做一些准备工作啊。第一个呢就是先下载一个 guitar fs, 打开之后呢,就是这个啊, guittala 是 fail storage, 那就是大文件的一个存储,这是一个小的一个插件嵌入到 guit 里面 啊,我下载安装就好了,但是这个地方有非常值得注意的一步啊,我的安装路径我必须要找到这个 gate 并找到这个地方,我要安到这个这个位置里面要找到这个地方,因为我我的那个 get 的话就是安装到了这个里面啊,来找一找,我的是装到了地盘里面的这个 program fire, 不对,不是这个,是 program fare 啊, gate gate 下面呢并啊安装到这个地方啊,我的路径要选到这个地方才可以。好啊,你选完这个路径之后 后面呢你呃写上这个啊, git l f s, 然后就一路 nice 就可以了。安装好之后呢啊,我怎么来 这个看一下啊,是不是已经安装成功了啊,你就去 gucci l f install 啊,这个地方呢啊,就是如果他安装成功了的话,他会给你去世的啊,我就去打个 cmd, 打开型 cmd, 然后我去输入 gateslfs install 啊,他就他就跟你说啊,你这个已经去啊,已经进行了出手啊啊,也就是说已经安装成功了,这个代表啊, 安装完之后呢啊,我今天呢,我来演示一下怎么来上传一个大文件,其实跟这个 gat 操作呢啊,有些类似,不完全一样啊。好,我来这个, 打开我的 ktop, 我来去新建一个,新建一个项目,我这个项目呢是我新建了一个 yolo 项目,我要把这个 yolo 上传上去啊,写一个 yolo, 然后其他东西呢?我先不去设置。嗯,点击 create repository。 好,然后咱们又会获取一个链接哈。啊,就这个啊,一会再去用它 获取链接。之后呢,我要准备我的这个项目文件。准备我的项目文件啊,我这个项目呢是在 ai 的 yolo 里面。好,我新建一个啊,我新建一个 yolo, 我新建一个, 然后我把我的这个项目呢啊,优乐维三,咱们看一看哈,他是一百七十八个 mb, 我复制粘贴到我的这个项目里面。 好,然后我把路径拷贝一下。啊,我好去先把这个路径进行出手画。 不是出手画啊,我这找到我的这个路径啊。嗯, cd 好,也就是我的是在这个项目下面,我可以去做一些上传的操作啊,做上传操作,拿着这个应用指南, 因为咱们已经有一些基础了啊,有一些基础,我就把代码写到了一个一个这个赛奥里面。好, 去挨着按照步骤来做就好了。嗯, gtenex。 啊,创建一个啊,初始化的一个仓库啊,他就说了你已经创建了这个仓库啊,目录是这个,然后我再去 getifs in store。 嗯啊,他说已经这个更新了这个后克斯,后克斯。好,然后追踪要上传的大文件哈。这个星号代表什么意思?也就是我这个路径下的所有文件啊,我还可以怎么写?我还可以写 cn 点 pdf 啊,都可以啊, 如果你只更新了一个文件啊,你可以去特定的去写啊啊,你如果去星的话,他就会把所有的文件都去给你更新啊,你可以写这个啊,星啊, 这个咱们先不,到时候再来演示,咱们先把这个所有的项目,所有的文件都要去上传好, 也包含所有的文件,然后再去这个。呃,去增加一个属性文件啊,这是咱们,这是咱们的这个给特操作里面不具有的哈,需要去增加一个呃, tributes, guitar tributes 啊,增加完之后呢?我这个添加属性文件的上传说明啊, gate commit gm 这个地方一定是双引号, 然后 first 第一次的 comment, 第一次提交 啊,他说一个文,嗯,有一个文件啊,已经去称职的了,然后我再去,然后我再去这个啊,建立连接啊, gate remote 推送到远端,然后 at origin, 然后跟我先去这个建立连接,连接的话我需要去来复制一下我要上传的这个文件的一个链接哈 啊,笑点优乐的也可以,特好,然后我去粘贴 啊,下一步呢,就是去上传我的属性文件啊, get a push origin master 好,上传,上传这个舒心文件也就上传这个 tributes 啊,他会生成一个这个地方正在加载啊,他就这个地方正在加载。 嗯,好,已经完成了啊,已经完成了,他上传是哪个文件上传是这个啊,你看他给我生成了一个这个 gate attributes, 它里面包含了一些信息哈,然后所有的文件 l, f, s, 然后合并了一些什么好,然后又生成一个 get 的这些东西。好,这个接着来操作啊,嗯,既然属性文件上传上传成功了之后呢,咱们就要添加上传的大文件, 就那个 master geet add, 这个呢,就跟咱们之前的操作是一样的了, 然后我再去 gate commit 杠 m 还是双引号哈啊?比如这个 gate 啊, l f s 这个大文件的这个 commit 好,他是产生了这一个啊, model 啊,产生的这一个啊,就是说明加载成功了啊,没有爆错啊。最后一步呢,就是咱们去上传大网页, get a push origin origin master, 好等待上传结果啊,这个地方呢需要花费一点点时间啊, 根据你文件的大小啊,他会一点点的去加载。 好,咱们等待他一下,应该是不到一分钟的时间, 我先暂停一下,好,已经上传成功了哈。嗯,我这个地方要说明一下啊,因为我这个第一次上传的话,他这个地方提示他说这个失败的去,呃,发送到这个地方啊,这个没有关系啊,并不是说你的错 操作是有问题的啊,因为这个他这个 guitar 这个服务器呢是在国外,嗯,这个对对,咱们这个国内的用户呢就访问非常不友好啊,有时候去会上传不上去啊,这时候呢我就需要去再重新呢,去来做一下 啊, gat 星,然后 get commit glm 啊,然后这个做一个提示啊,就这个,然后再去 get post oregon master 啊,再去试一遍就可以去上传了啊 啊,这是这个是没有问题的,最后的话他是会加载上传成功的标志的,他会加载一些时间啊,好啊,现在。


给大家分享一下 ada 装这个使用的小技巧,之前有粉丝问到过,就是说多条肯定的或者 pose 的一个记录,我们怎么去给他进行一个合并啊?什么意思呢?就是说啊,我们可以看这里,我进行了四次提交,对吧?这四次可能是针对于一个 bug 的修改,然后呢,其实我在不停的修改之后,我想把这个四个合成一个提交啊, 这样的一个需求应该怎么去实现啊?其实是可以依赖于这个瑞贝斯和这个瑞塞的,这两个指令都是可以做到这个事情的,然后我们就来稍微演示一下,呃,先做一个简单的说明啊,这边的话每一次提交啊,其实我都是在我这个文件上啊多输出了一行这个输出啊, ok, 然后呢,我们这边首先先进行一个瑞贝斯的一个演示啊,啊,现在这样,我要把第三次提交和第四次要先进行一个 合并,然后我选中这个第三次提交啊,我们进行一个右键的一个呃,瑞贝斯方便面,然后呢,这个地方是可以选中的,你这样选中第四次提交,然后去进行一个 fissapp, 然后我们修改一下这个提交文案,双击点击就可以啊,然后说是合并啊,合并三四次, ok, 这边改完了之后呢,我们就进行一个死大腿的微信啊啊,这时候你会看到其实形成了一个新的一个考秘特,对吧?然后我们这时候需要呃,使用一个 poss 功能啊,不是普通的这个 poss, 是点那个下达箭头,有一个 focus, 一个铺式啊,当然你如果说是 max 分支的话,然后在 ad 中其实是有一个默认的一个分支保护规则啊,你找到这个 get, 然后你们默认的话可能是这个样子的, 然后你要把这个东西删掉之后才能提交到啊,要不然他会受一个保护啊,这时候我们来进行一个提交啊,啊?提交之前的话,我们先看一下这个,我在啊 get 这边去。呃,看这个提交记录啊,其实是有呃三次的,四次的,对吧?然后我们稍微提交一下, ok, 好,我们可以看到本地的一个提交记录,其实啊第三四次已经合并了,对吧?然后内容的话也是合并过的一个内容,然后我们来看一下这个给谁意义上这个提交记录, ok, 他也和我们本地的做了一个同步,对吧?是一样的。嗯,那我们再来演示一下这个 resides 啊,然后我把这个第二次和这个第三四次的提交 进行一个合并啊,但是瑞塞的这边的话,你要选中这个第一次,然后啊进行瑞塞特的一个操作,然后默认的话其实是这个 max, max 默认是 max 的,然后你进行一个雷塞特, 呃,他可是位置有点不同,其实这时候他是把你代码的一个变动拉到本地来了,你你也可以稍作一些修改啊,然后我们这里的话不进行任何操作,然后再进行一个,呃,提交啊,提交的话这边文案也改一下。 oktop, 好,啃蜜桃完了之后,其实我们可以观察一下这里,其实它和刚才的瑞贝斯差不多,也是生成了一条这个啊啃蜜桃,对吧?然后我们进行一个 pose, 也是使用 pose pose 强制提交。 ok, 这时候其实我们可以看到这个提交啊,也合并了,对吧? 这个地方打错了,二三四次啊,我们可以看一下,其实是第二次提交和第三四次的话都放到了一块去了,对吧?然后我们来看一下这个地方 啊,他也是合并调,对吧?然后其实我们有时候还会有一些需求,比如说啊,这几次我不要了,对吧?不要的话其实也是可以实现的啊。我们借助于赛特的一个功能,然后你选择这个他的,然后进行一个比赛的,其实他就可以把你 之前提交,那有时都删掉,对吧?删掉了之后你再进行一个,呃,强制提交, 然后这个就没了。 ok, 本地的已经没有了,只剩下我第一次提交的一个记录,然后我们看一下远程的, 对吧?这边提交记录也就会被删掉。好,今天呢,分享就到这里,我们下期再见。