建设银行不弹出网站,crm系统架构图,网站为什么维护中,婚庆 网站模板一.理解分支
我们看下面这张图片#xff1a; 在版本回退⾥#xff0c;你已经知道#xff0c;每次提交#xff0c;Git都把它们串成⼀条时间线#xff0c;这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前#xff0c;只有⼀条时间线#xff0c;在Git⾥#xff0c;这个分⽀…一.理解分支
我们看下面这张图片 在版本回退⾥你已经知道每次提交Git都把它们串成⼀条时间线这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前只有⼀条时间线在Git⾥这个分⽀叫主分⽀即master分⽀
HEAD严格来说不是指向提交⽽是指向mastermaster才是指向提交的所以HEAD指向的就是当前分⽀
二.创建分⽀
这里我们又要开始指令的学习了。
git branch 查看当前本地所有分⽀
如图 git branch name;//表示创建分支
我们这里就先创建dev1分支 注意*表示为当前HEAD指向的分支 如图我们可以发现master和dev1的指向相同如图所示 三.切换分⽀
git checkout 分支名;
下面我们切换到dev1分支 *号在dev1上了我们切换成功。
如图 下面我们在dev1分支上新写一行内容然后提交 我们返回master分支cat test文件 发现没有新加的内容如下图 四.合并分⽀
为了在master主分⽀上能看到新的提交就需要将 dev1 分⽀合并到 master 分⽀,操作如下 我们用
git merge 分支名//表示将分支合并到当前HEAD所在分支上
补充
Fast-forward代表“快进模式”也就是直接把master指向dev1的当前提交所以合并速度⾮常快
五.删除分⽀
合并完成后,dev1分⽀对于我们来说就没⽤了那么dev1分⽀就可以被删除掉
注意点
1.如果当前正处于某分⽀下就不能删除当前分⽀
2.如果该分支未进行过合并不能用该指令删除
git branch -d 分支名;删除某分支
操作如下 六.合并冲突
在实际分⽀合并的时候并不是想合并就能合并成功的有时候可能会遇到代码冲突的问题 补充知识;
git checkout -b 分支名;
//表示git branch 分支名 git checkout 分支名
为了演示该操作我们新建dev2分支然后再dev2分支第一行后面aaa在master分支test文件第一行bbb
新建dev2分支然后再dev2分支第一行后面aaa 在master分支test文件第一行bbb 现在情况如下图 如果我们现在在master分支上合并 就会出现以下错误
打开test文件进行适当人为修改 假如我们是要aaa修改结果如下 修改完成之后我们需要再次提交即可操作如下 补充知识
git log:
git log --graph --abbrev-commit;//表示视图查看修改情况 七.分⽀管理策略
通常合并分⽀时如果可能Git会采⽤ Fast forward 模式。还记得如果我们采⽤ Fast forward 模式之后形成的合并结果是什么呢?
在Fast forward 模式下删除分⽀后查看分⽀历史时会丢掉分⽀信息看不出来最新提 交到底是merge进来的还是正常提交的。 但在合并冲突部分我们也看到通过解决冲突问题会再进⾏⼀次新的提交,该好处是从分⽀历史上就可以看出分⽀信息。例如我们现在已经删除了在合并冲突部分创建的 dev2 分⽀但依旧能看到master其实是由其他分⽀合并得到
Git⽀持我们强制禁⽤ Fast forward 模式那么就会在merge时⽣成⼀个新的 commit 这样 从分⽀历史上就可以看出分⽀信息 指令(举例
git merge --no-ff -m merge with no-ff dev2
--no-ff 参数表⽰禁⽤ Fast forward 模式。禁⽤ Fast forward 模式后合并会创建⼀个新的 commit 所以加上 -m 参数把描述写进去
所以在合并分⽀时加上 --no-ff 参数就可以⽤普通模式合并合并后的历史有分⽀能看出来曾 经做过合并⽽ fast forward 合并就看不出来曾经做过合并 八.分⽀策略
在实际开发中我们应该按照⼏个基本原则进⾏分⽀管理: 1.master分⽀应该是⾮常稳定的也就是仅⽤来发布新版本平时不能在上⾯⼲活
2.dev分⽀是不稳定的到某个时候⽐如1.0版本发布时再把dev分⽀合并到master上在master分⽀发布1.0版本
九.bug分⽀
假如我们现在正在dev3分⽀上进⾏开发开发到⼀半突然发现 master 分⽀上⾯有bug需要 解决。在Git中每个bug都可以通过⼀个新的临时分⽀来修复修复后合并分⽀然后将临时分⽀删除。 可现在 dev3的代码在⼯作区中开发了⼀半还⽆法提交怎么办
git stash;
//将当前的⼯作区信息进⾏储藏被储藏的内容可以在将来某个时间恢复出来 现在我们发现master分支存在问题接下来我们要进行如下操作;
第一步保存当前内容注意内容是在工作区未git add的 第二步回到master分支然后新建修改分支进行修改 第三步将修改版本合并到master版本
第四步回到dev3得到之前内容继续工作
git stash list;
//查看stash中内容
git stash pop;
//恢复工作区
git stash apply stash{0}
//恢复指定的stash
git stash apply;
//恢复工作区但是stash中还有内容
git stash drop
//来删除stash中内容
第五步dev3完成之后先将master合并到dev3上在将dev3合并到master上重点 十.删除临时分⽀
指的是删除分支中的注意点2该分支未进行过合并不能用git branch -d删除
我们此时可以用-D强制删除
git branch -D 分支名 分支作用总结
分⽀在实际中有什么⽤呢假设你准备开发⼀个新功能但是需要两周才能完成第⼀周你写了50%的代码如果⽴刻提交由于代码还没写完不完整的代码库会导致别⼈不能⼲活了。如果等代码全部写完再⼀次提交⼜存在丢失每天进度的巨⼤⻛险。现在有了分⽀就不⽤怕了。你创建了⼀个属于你⾃⼰的分⽀别⼈看不到还继续在原来的分⽀上正常⼯作⽽你在⾃⼰的分⽀上⼲活想提交就提交直到开发完毕后再⼀次性合并到原来的分⽀上这样既安全⼜不影响别⼈⼯作。并且Git⽆论创建、切换和删除分⽀Git在1秒钟之内就能完成⽆论你的版本库是1个⽂件还是1万个⽂件 追后感谢大家的支持 !!!