当前位置: 首页 > news >正文

福步论坛外贸交流手机版seo研究中心qq群

福步论坛外贸交流手机版,seo研究中心qq群,做家教在哪个网站找,南宁品牌网站建设📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、理解分⽀二、创建分支三、切换分⽀四、合并分⽀五、删除分⽀六、合并冲突七、分⽀管理策略…

在这里插入图片描述


📘北尘_:个人主页

🌎个人专栏:《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》

☀️走在路上,不忘来时的初心

文章目录

  • 一、理解分⽀
  • 二、创建分支
  • 三、切换分⽀
  • 四、合并分⽀
  • 五、删除分⽀
  • 六、合并冲突
  • 七、分⽀管理策略
  • 八、分⽀策略


一、理解分⽀

本章开始介绍 Git 的杀⼿级功能之⼀(注意是之⼀,也就是后⾯还有之⼆,之三……):分⽀。分⽀就是科幻电影⾥⾯的平⾏宇宙,当你正在电脑前努⼒学习 C++ 的时候,另⼀个你正在另⼀个平⾏宇宙⾥努⼒学习 JAVA。
如果两个平⾏宇宙互不⼲扰,那对现在的你也没啥影响。不过,在某个时间点,两个平⾏宇宙合并了,结果,你既学会了 C++ ⼜学会了 JAVA!
在这里插入图片描述
在版本回退⾥,你已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是一个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即 master 分⽀。
再来理解⼀下HEAD,HEAD 严格来说不是指向提交,⽽是指向master,master才是指向提交的,所以,HEAD 指向的就是当前分⽀。
在这里插入图片描述
每次提交,master分⽀都会向前移动⼀步,这样,随着你不断提交,master分⽀的线也越来越⻓,⽽HEAD只要⼀直指向master分⽀即可指向当前分⽀。
通过查看当前的版本库,我们也能清晰的理出思路:
在这里插入图片描述


二、创建分支

Git ⽀持我们查看或创建其他分⽀,在这⾥我们来创建第⼀个⾃⼰的分⽀ dev ,对应的命令为:

在这里插入图片描述

当我们创建新的分⽀后,Git 新建了⼀个指针叫 dev, * 表⽰当前 HEAD 指向的分⽀是 master 分⽀。另外,可以通过⽬录结构发现,新的 dev 分⽀:

在这里插入图片描述

发现⽬前 dev 和 master 指向同⼀个修改。并且也可以验证下 HEAD ⽬前是指向 master 的:

在这里插入图片描述

⼀张图总结:

在这里插入图片描述


三、切换分⽀

那如何切换到 dev 分⽀下进⾏开发呢?使⽤ git checkout 命令即可完成切换,⽰例如下:

在这里插入图片描述
在这里插入图片描述

我们发现 HEAD 已经指向了 dev,就表⽰我们已经成功的切换到了 dev 上!
接下来,在 dev 分⽀下修改 ReadMe ⽂件,新增⼀⾏内容,并进⾏⼀次提交操作:

在这里插入图片描述

现在,dev 分⽀的⼯作完成,我们就可以切换回 master 分⽀:

在这里插入图片描述

切换回 master 分⽀后,发现ReadMe⽂件中新增的内容不⻅了!!!赶紧再切回 dev看看:

在这里插入图片描述

在 dev 分⽀上,内容还在。为什么会出现这个现象呢?我们来看看 dev 分⽀和 master 分⽀指向,发现两者指向的提交是不⼀样的:

在这里插入图片描述

看到这⾥就能明⽩了,因为我们是在dev分⽀上提交的,⽽master分⽀此刻的提交点并没有变,此时的状态如图如下所⽰:

在这里插入图片描述

当切换到 master 分⽀之时,HEAD 就指向了 master,当然看不到提交了!


四、合并分⽀

为了在 master 主分⽀上能看到新的提交,就需要将 dev 分⽀合并到 master 分⽀,⽰例如下:

在这里插入图片描述

git merge 命令⽤于合并指定分⽀到当前分⽀。合并后,master 就能看到 dev 分⽀提交的内容了。此时的状态如图如下所⽰。

在这里插入图片描述

Fast-forward 代表“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度⾮常快。
当然,也不是每次合并都能 Fast-forward,我们后⾯会讲其他⽅式的合并。


五、删除分⽀

合并完成后, dev 分⽀对于我们来说就没⽤了, 那么dev分⽀就可以被删除掉,注意如果当前正处于某分⽀下,就不能删除当前分⽀,如:

在这里插入图片描述

⽽可以在其他分⽀下删除当前分⽀,如:

在这里插入图片描述

此时的状态如图如下所⽰。

在这里插入图片描述

因为创建、合并和删除分⽀⾮常快,所以Git⿎励你使⽤分⽀完成某个任务,合并后再删掉分⽀,这和直接在master分⽀上⼯作效果是⼀样的,但过程更安全。


六、合并冲突

可是,在实际分⽀合并的时候,并不是想合并就能合并成功的,有时候可能会遇到代码冲突的问题。
为了演⽰这问题,创建⼀个新的分⽀ dev1 ,并切换⾄⽬标分⽀,我们可以使⽤ git checkout -b dev1 ⼀步完成创建并切换的动作,⽰例如下:

在这里插入图片描述

在 dev1 分⽀下修改 ReadMe ⽂件,更改⽂件内容如下 aaa改成 bbb ,并进⾏⼀次提交,如:

在这里插入图片描述

切换⾄ master 分⽀,观察 ReadMe ⽂件内容:

在这里插入图片描述

我们发现,切回来之后,⽂件内容由变成了⽼的版本,这种现象很正常,我们现在也完全能理解。
此时在 master 分⽀上,我们对 ReadMe ⽂件再进⾏⼀次修改,并进⾏提交,如下:

在这里插入图片描述

现在, master 分⽀和 dev1 分⽀各⾃都分别有新的提交,变成了这样:

在这里插入图片描述

这种情况下,Git 只能试图把各⾃的修改合并起来,但这种合并就可能会有冲突,如下所⽰:

在这里插入图片描述

发现 ReadMe ⽂件有冲突后,可以直接查看⽂件内容,要说的是 Git 会⽤ <<<<<<<,=======,>>>>>>> 来标记出不同分⽀的冲突内容,如下所⽰:

在这里插入图片描述

此时我们必须要⼿动调整冲突代码,并需要再次提交修正后的结果!!(再次提交很重要,切勿忘记)

在这里插入图片描述

在这里插入图片描述

到这⾥冲突就解决完成,此时的状态变成了

在这里插入图片描述

⽤带参数的 git log也可以看到分⽀的合并情况,具体⼤家可以⾃⾏搜索 git log 的⽤法:

在这里插入图片描述

最后,不要忘记 dev1 分⽀使⽤完毕后就可以删除了:

在这里插入图片描述


七、分⽀管理策略

通常合并分⽀时,如果可能,Git 会采⽤ Fast forward 模式。还记得如果我们采⽤ Fast forward 模式之后,形成的合并结果是什么呢?

在这里插入图片描述

在这种 Fast forward 模式下,删除分⽀后,查看分⽀历史时,会丢掉分⽀信息,看不出来最新提交到底是 merge 进来的还是正常提交的。
但在合并冲突部分,我们也看到通过解决冲突问题,会再进⾏⼀次新的提交,得到的最终状态为:

在这里插入图片描述

那么这就不是 Fast forward 模式了,这样的好处是,从分⽀历史上就可以看出分⽀信息。例如我们现在已经删除了在合并冲突部分创建的 dev1 分⽀,但依旧能看到 master 其实是由其他分⽀合并得到:

在这里插入图片描述

Git ⽀持我们强制禁⽤ Fast forward 模式,那么就会在 merge 时⽣成⼀个新的 commit ,这样,从分⽀历史上就可以看出分⽀信息。

下⾯我们实战⼀下 --no-ff ⽅式的 git merge 。⾸先,创建新的分⽀ dev2 ,并切换⾄新的分支:

在这里插入图片描述

修改 ReadMe ⽂件,并提交⼀个新的 commit :

在这里插入图片描述

切回 master 分⽀,开始合并:

在这里插入图片描述

请注意 --no-ff 参数,表⽰禁⽤ Fast forward 模式。禁⽤ Fast forward 模式后合并会创建⼀个新的 commit ,所以加上 -m 参数,把描述写进去。
合并后,查看分⽀历史:

在这里插入图片描述

可以看到,不使⽤ Fast forward 模式,merge后就像这样:

在这里插入图片描述

所以在合并分⽀时,加上 --no-ff 参数就可以⽤普通模式合并,合并后的历史有分⽀,能看出来曾经做过合并,⽽ fast forward 合并就看不出来曾经做过合并。


八、分⽀策略

在实际开发中,我们应该按照⼏个基本原则进⾏分⽀管理:
⾸先,master分⽀应该是⾮常稳定的,也就是仅⽤来发布新版本,平时不能在上⾯⼲活;
那在哪⼲活呢?⼲活都在dev分⽀上,也就是说,dev分⽀是不稳定的,到某个时候,⽐如1.0版本发布时,再把dev分⽀合并到master上,在master分⽀发布1.0版本;
你和你的⼩伙伴们每个⼈都在dev分⽀上⼲活,每个⼈都有⾃⼰的分⽀,时不时地往dev分⽀上合并就可以了。
所以,团队合作的分⽀看起来就像这样:

在这里插入图片描述


http://www.zhongyajixie.com/news/31743.html

相关文章:

  • 仿素材网站源码郑州seo全网营销
  • 深圳餐饮公司网站制作产品营销软文
  • 一个ip 做2个网站吗aso网站
  • 游戏网站开发协议上海关键词排名搜索
  • 短网址生成器是什么意思企业网站优化报告
  • 怎么通过做网站挣钱福州关键词快速排名
  • 企业网站建设哪家快线上推广的好处
  • 服务器怎么做看视频的网站软件推广赚钱一个10元
  • 去视频网站做编辑南宁网站seo排名优化
  • 泉州网站建设多少钱最新seo视频教程
  • 网上商城制作哪家好seo文章代写平台
  • wordpress做个游戏有名的seo外包公司
  • 网站开发涉及服务餐饮营销方案100例
  • 软件下载的网站seo视频
  • wordpress允许注册seo查询工具有哪些
  • 做网站如何上传百度推广培训机构
  • 佛山找企业的网站网站广告策划
  • 品牌网站建设 2蝌蚪小南昌seo计费管理
  • 住房建设部网站监理员百度指数怎么刷指数方法
  • 猛烈做瞹瞹视频澳洲网站什么样的人适合做营销
  • 外贸网站建设 福田大连seo顾问
  • 嘉兴app开发seo是什么意思为什么要做seo
  • 做经营性的网站需要注册什么软件定制开发公司
  • 杭州知名的网站建设策划sem竞价推广是什么
  • 各种网站开发工具推广普通话手抄报模板
  • 常州建站程序沈阳百度快照优化公司
  • 武夷山网站制作如何seo网站推广
  • 塘沽做网站比较好的黑科技推广软件
  • 做平面那个网站素材好百度广告官网
  • wordpress建淘宝客网站吗百度快照seo