git mr 怎样合并部分_牛掰!程序员小姐姐竟用动画图解 Git ,有点秀呀!

720f27fcf5dc633878b88d7a4b4d46e6.gif

6a127fc546cf85860cc85a914c706c1b.png

今天“Go键盘侠”带你们向程序员小姐姐学习:怎么用动画图解Git的命令,赶紧上车。

相信各位程序员都知道,Git作为代码版本管理工具,是团队协作必备的利器,自从这款工具诞生后,便一直深受各位开发者的喜爱。

但是,也有不少公司还一直用svn,甚至有部分开发者对Git什么还一知半解,更别谈怎么用了。

接下来,“Go键盘侠”筛选了几个比较简单的案例,让你们见识下大神是怎样用动画来进行图解Git命令的。

1、Git是什么

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git有什么特点?简单来说就是:高端大气上档次!

那什么是版本控制系统?如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的文件夹下有好几份Word备份文档!

过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。

看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。

更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。

于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?

这个软件用起来就应该像这个样子,能记录每次文件的改动:

2d5e1abe32ec87bc52885d5b76cc6399.png

2、Git命令之合并(Merge)

我们都知道,在使用 Git 做日常开发项目的时候,都会选择将项目切换成多个分支,在不同分支上处理不同事务。最简单的,就是开发、测试、生产等几个不同环境来回切换,使得项目管理与产品迭代更为轻松,亦可最大化避免项目出现严重漏洞时所带来的伤害。

当我们在不同分支开发完代码后,会选择将分支进行合并(merge)。平时常用的 git merge 操作,又可分为这两种类型:fast-forwarno-fast-forward

  • fast-forward

一般情况下,Git 会默认使用 fast-forward 这种类型来处理分支合并,当我们成功合并后,不会产生任何提交记录,且当旧分支被移除后,其分支信息也会被一并删除。

通过动画的方式展示,就像下面这样:

00508cba43881b21f3dbacb8d5863133.gif

  • no-fast-forward

而当我们使用 no-fast-forward 模式,即在合并分支命令加入 --no-ff 后缀的方式运行时,便会生成一个新的提交记录,就像下面这样:

891cc3a202c69188c53b33c09fbddfa1.gif

3、Git命令之合并冲突

在我们日常进行团队协作开发的时候,总会出现同个文件在不同分支上被同时编辑的情况。

这样,当我们提交代码的时候,比较晚提交的另一方,在运行 Git 命令时就会报冲突错误。在正常情况下,只要我们手动处理下冲突文件,然后再重新提交即可。

打个比方,现在代码仓库有个 README 文件,在同一行的位置,在不同分支上被编辑了,如下所示:

91a87af6947a9359c3d12d3cb358f031.png

那么,使用合并命令,及修复冲突的过程,用动画的形式展示,看起来就像下面这样:

c252e6527b3770862006ff97260c5b36.gif 可以看到,在移除多余的提示代码后,会重新产生一条新的提交记录。 4、Git命令之Rebase

在进行分支合并前,我们一般会先使用pull命令拉取线上的最新代码,在保证无任何冲突发生的前提下,再进行分支合并。

但是,这种代码拉取方式是最为简单粗暴的,通过这种方式合并,会使得整个提交记录看起来特别乱,不太直观与优雅。

因此,对 Git 使用比较规范、追求比较高的程序员,都会先使用 rebase 整理下提交记录,再提交代码,经过这样处理后的 Git 提交记录,看着就比直男还直了 438b8dc8882b8537fda8a79cf25817ec.png 。 以动画的方式呈现,就像下面这样: a4d3f7fca6403c2d5da4d2d92916b77e.gif 可以清晰的看到,原本对接在 master 分支第二处的 dev 分支,被对接到顶部了。 5、Git命令之Hard Reset

日常开发中,我们可能会因为提交了某些无用代码而进行回滚操作。通常在只有一个人独立开发的项目情况下,会选用--hard命令来进行回滚处理。

不过,这种操作方式有个不好的地方,在多人协作的时候,这么搞很容易使分支出现冲突,或直接毁掉别人的提交记录。

hard reset 以动画的形式表现,看起来就像下面这样: 4b02a9de696a4b00b14abf6967f8adcc.gif 除此之外,还有其它命令:Reverting、Cherry-picking、Fetch 等相关操作,这里就不跟大家一一讲解了。 以上是有关Git命令的介绍,如果觉得对你有帮助的话,可以点波关注分享给你的小伙伴。

感谢您的阅读,如有疑问或意见请及时反馈给我们。


推荐文章:

听说深圳牛掰的互联网公司有这些?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值