粉丝173获赞1861

你可能会遇到这种情况,你给老师、同事或甲方发了一个文件,他说再改一下,你就改了,再发过去,然后再改再发。等十个版本后,他回复你一句,还是第一版吧,哈哈。 然而当你打开文件,却发现,哎,第一版是什么样的崩溃?从此以后,你就养成了一个习惯,文件一点零,二点零、三点零,修改版,最终版,最终修改版,打死也不改版,打死也不改修改版,打死也不改最终版,等等。 哈哈,是不是很烦?单个文件还能这么将就,但如果是几十个几百个文件呢?绝对是地域级难度。于是 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, 一定要练习啊!下期我们把元导的零点二版本持续升级,从实战中学习,拜拜。